TiDB Cloud Serverlessからデータをエクスポート

q
O
s

TiDB Cloud Serverless Export(ベータ版)は、 TiDB Cloud Serverless クラスターからローカルファイルまたは外部storageサービスにデータをエクスポートできるサービスです。エクスポートしたデータは、バックアップ、移行、データ分析などの用途に使用できます。

mysqldumpや TiDB Dumplingなどのツールを使用してデータをエクスポートすることもできますが、 TiDB Cloud Serverless Export を使用すると、 TiDB Cloud Serverless クラスターからより便利かつ効率的にデータをエクスポートできます。これには、次のような利点があります。

  • 利便性: エクスポート サービスは、 TiDB Cloud Serverless クラスターからデータをエクスポートするためのシンプルで使いやすい方法を提供するため、追加のツールやリソースは必要ありません。
  • 分離: エクスポート サービスは個別のコンピューティング リソースを使用するため、オンライン サービスで使用されるリソースからの分離が確保されます。
  • 一貫性: エクスポート サービスは、ロックを発生させることなくエクスポートされたデータの一貫性を確保するため、オンライン サービスには影響しません。

エクスポート場所

次の場所にデータをエクスポートできます。

注記:

エクスポートするデータのサイズが大きい場合(100GiBを超える場合)は、外部storageにエクスポートすることをお勧めします。

ローカルファイル

TiDB Cloud Serverless クラスターからローカル ファイルにデータをエクスポートするには、データTiDB Cloudコンソールを使用するまたはTiDB Cloud CLIを使用するエクスポートし、エクスポートしたデータをTiDB Cloud CLI を使用してダウンロードする必要があります。

データをローカル ファイルにエクスポートする場合、次の制限があります。

  • TiDB Cloudコンソールを使用してエクスポートされたデータをダウンロードすることはサポートされていません。
  • エクスポートされたデータはTiDB Cloudのスタッシングエリアに保存され、2日後に有効期限が切れます。エクスポートしたデータは期限内にダウンロードする必要があります。
  • スタッシング領域のstorageスペースがいっぱいの場合、データをローカル ファイルにエクスポートすることはできません。

アマゾンS3

データを Amazon S3 にエクスポートするには、次の情報を提供する必要があります。

  • URI: s3://<bucket-name>/<folder-path>/
  • 次のアクセス資格情報のいずれか:
    • アクセスキー : アクセス キーにs3:PutObjectおよびs3:ListBucket権限があることを確認します。
    • ロールARN : ロールARN(Amazonリソースネーム)にs3:PutObjects3:ListBucket権限があることを確認してください。このロールARNはAWSでホストされているクラスターでのみサポートされることに注意してください。

詳細についてはAmazon S3 アクセスを構成する参照してください。

Googleクラウドストレージ

Google Cloud Storage にデータをエクスポートするには、次の情報を提供する必要があります。

  • URI: gs://<bucket-name>/<folder-path>/
  • アクセス認証情報:バケットのBase64エンコードされたサービスアカウントキーサービスアカウントキーにstorage.objects.create権限があることを確認してください。

詳細についてはGCS アクセスを構成する参照してください。

Azure BLOB ストレージ

Azure Blob Storage にデータをエクスポートするには、次の情報を提供する必要があります。

  • URI: azure://<account-name>.blob.core.windows.net/<container-name>/<folder-path>/またはhttps://<account-name>.blob.core.windows.net/<container-name>/<folder-path>/
  • アクセス資格情報: Azure Blob Storage コンテナーの共有アクセス署名(SAS)トークン 。SAS トークンに、 ContainerObjectリソースに対するReadWrite権限があることを確認してください。

詳細についてはAzure Blob Storage アクセスを構成する参照してください。

アリババクラウドOSS

Alibaba Cloud OSS にデータをエクスポートするには、次の情報を提供する必要があります。

  • URI: oss://<bucket-name>/<folder-path>/
  • アクセス認証情報:Alibaba Cloudアカウントのアクセスキーペアバケットへのデータエクスポートを許可するために、AccessKeyペアoss:GetBucketInfo oss:PutObject oss:ListBuckets権限があることを確認してください。

詳細についてはAlibaba Cloud Object Storage Service (OSS) アクセスを構成する参照してください。

エクスポートオプション

データフィルタリング

  • TiDB Cloudコンソールは、選択したデータベースとテーブルを含むデータのエクスポートをサポートしています。
  • TiDB Cloud CLI は、SQL ステートメントとテーブルフィルター使用したデータのエクスポートをサポートしています。

データ形式

次の形式でデータをエクスポートできます。

  • SQL : SQL 形式でデータをエクスポートします。
  • CSV : CSV形式でデータをエクスポートします。以下のオプションを指定できます。
    • delimiter : エクスポートデータで使用する区切り文字を指定します。デフォルトの区切り文字は"です。
    • separator : エクスポートデータのフィールド区切りに使用する文字を指定します。デフォルトの区切り文字は,です。
    • header : エクスポートデータにヘッダー行を含めるかどうかを指定します。デフォルト値はtrueです。
    • null-value : エクスポートデータ内の NULL 値を表す文字列を指定します。デフォルト値は\Nです。
  • Parquet : Parquet 形式でデータをエクスポートします。

スキーマとデータは、次の命名規則に従ってエクスポートされます。

アイテム圧縮されていない圧縮
データベーススキーマ{データベース}-schema-create.sql{データベース}-schema-create.sql.{圧縮タイプ}
テーブルスキーマ{データベース}.{テーブル}-schema.sql{データベース}.{テーブル}-schema.sql.{圧縮タイプ}
データ{データベース}.{テーブル}.{0001}.{csvparquet

データ圧縮

次のアルゴリズムを使用して、エクスポートされた CSV および SQL データを圧縮できます。

  • gzip (デフォルト): エクスポートされたデータをgzipで圧縮します。
  • snappy : エクスポートされたデータをsnappyで圧縮します。
  • zstd : エクスポートされたデータをzstdで圧縮します。
  • none : エクスポートしたdataを圧縮しません。

次のアルゴリズムを使用して、エクスポートされた Parquet データを圧縮できます。

  • zstd (デフォルト): Parquet ファイルをzstdで圧縮します。
  • gzip : Parquet ファイルをgzipで圧縮します。
  • snappy : Parquet ファイルをsnappyで圧縮します。
  • none : Parquet ファイルを圧縮しません。

データ変換

データを Parquet 形式にエクスポートする場合、 TiDB Cloud Serverless と Parquet 間のデータ変換は次のようになります。

TiDB Cloudサーバーレス タイプParquestプリミティブ型Parquet論理型
可変長文字バイト配列文字列(UTF8)
時間バイト配列文字列(UTF8)
小さなテキストバイト配列文字列(UTF8)
中テキストバイト配列文字列(UTF8)
TEXTバイト配列文字列(UTF8)
長文バイト配列文字列(UTF8)
セットバイト配列文字列(UTF8)
JSONバイト配列文字列(UTF8)
日付バイト配列文字列(UTF8)
チャーバイト配列文字列(UTF8)
ベクターバイト配列文字列(UTF8)
小数点(1<=p<=9)INT32DECIMAL(p,s)
小数点(10<=p<=18)INT64DECIMAL(p,s)
小数点(p>=19)バイト配列文字列(UTF8)
列挙型バイト配列文字列(UTF8)
タイムスタンプINT64TIMESTAMP(単位=MICROS、isAdjustedToUTC=false)
日時INT64TIMESTAMP(単位=MICROS、isAdjustedToUTC=false)
INT32/
タイニーイントINT32/
符号なし TINYINTINT32/
スモールイントINT32/
符号なしスモール整数INT32/
ミディアムミントINT32/
署名なしのメディアミントINT32/
INTINT32/
符号なし整数固定長バイト配列(9)10進数(20,0)
ビッグイント固定長バイト配列(9)10進数(20,0)
符号なしBIGINTバイト配列文字列(UTF8)
フロートフロート/
ダブルダブル/
ブロブバイト配列/
タイニーブロブバイト配列/
ミディアムブロブバイト配列/
ロングブロブバイト配列/
バイナリバイト配列/
VARBINARYバイト配列/
少しバイト配列/

データをローカルファイルにエクスポートする

  • Console
  • CLI
  1. TiDB Cloudコンソールにログインし、プロジェクトのクラスターページに移動します。

    ヒント:

    複数のプロジェクトがある場合は、左下隅にある をクリックして、別のプロジェクトに切り替えます。

  2. ターゲット クラスターの名前をクリックして概要ページに移動し、左側のナビゲーション ペインで[インポート]をクリックします。

  3. インポートページで、右上隅の「データのエクスポート先」をクリックし、ドロップダウンリストから「ローカルファイル」を選択します。以下のパラメータを入力します。

    • タスク名: エクスポートタスクの名前を入力します。デフォルト値はSNAPSHOT_{snapshot_time}です。

    • エクスポートされたデータ: エクスポートするデータベースとテーブルを選択します。

    • データ形式: SQLCSV 、またはParquet を選択します。

    • 圧縮: GzipSnappyZstd 、またはなしを選択します。

    ヒント:

    クラスターでこれまでにデータのインポートもエクスポートもしたことがない場合は、ページの下部にある[データをエクスポートするにはここをクリックします...]をクリックしてデータをエクスポートする必要があります。

  4. [エクスポート]をクリックします。

  5. エクスポート タスクが成功したら、エクスポート タスクの詳細に表示されるダウンロード コマンドをコピーし、 TiDB CloudCLIでコマンドを実行してエクスポートされたデータをダウンロードできます。

  1. エクスポート タスクを作成します。

    ticloud serverless export create -c <cluster-id>

    出力からエクスポート ID が取得されます。

  2. エクスポート タスクが成功したら、エクスポートされたデータをローカル ファイルにダウンロードします。

    ticloud serverless export download -c <cluster-id> -e <export-id>

    ダウンロード コマンドの詳細については、 ticloud サーバーレスエクスポートのダウンロード参照してください。

Amazon S3にデータをエクスポートする

  • Console
  • CLI
  1. TiDB Cloudコンソールにログインし、プロジェクトのクラスターページに移動します。

    ヒント:

    複数のプロジェクトがある場合は、左下隅にある をクリックして、別のプロジェクトに切り替えます。

  2. ターゲット クラスターの名前をクリックして概要ページに移動し、左側のナビゲーション ペインで[インポート]をクリックします。

  3. インポートページで、右上隅の「データのエクスポート先」をクリックし、ドロップダウンリストから「Amazon S3」を選択します。以下のパラメータを入力します。

    • タスク名: エクスポートタスクの名前を入力します。デフォルト値はSNAPSHOT_{snapshot_time}です。
    • エクスポートされたデータ: エクスポートするデータベースとテーブルを選択します。
    • データ形式: SQLCSV 、またはParquet を選択します。
    • 圧縮: GzipSnappyZstd 、またはなしを選択します。
    • フォルダー URI : s3://<bucket-name>/<folder-path>/形式で Amazon S3 の URI を入力します。
    • バケット アクセス: 次のアクセス資格情報のいずれかを選択し、資格情報を入力します。
      • AWS ロール ARN : バケットへのアクセス権を持つロール ARN を入力します。AWS CloudFormation を使用してロール ARN を作成することをお勧めします。詳細については、 TiDB Cloud Serverless の外部ストレージアクセスを構成する参照してください。
      • AWS アクセスキー: バケットにアクセスする権限を持つアクセスキー ID とアクセスキーシークレットを入力します。
  4. [エクスポート]をクリックします。

ticloud serverless export create -c <cluster-id> --target-type S3 --s3.uri <uri> --s3.access-key-id <access-key-id> --s3.secret-access-key <secret-access-key> --filter "database.table" ticloud serverless export create -c <cluster-id> --target-type S3 --s3.uri <uri> --s3.role-arn <role-arn> --filter "database.table"
  • s3.uri : s3://<bucket-name>/<folder-path>/形式の Amazon S3 URI。
  • s3.access-key-id : バケットにアクセスする権限を持つユーザーのアクセス キー ID。
  • s3.secret-access-key : バケットにアクセスする権限を持つユーザーのアクセスキーシークレット。
  • s3.role-arn : バケットにアクセスする権限を持つロール ARN。

Google Cloud Storage にデータをエクスポートする

  • Console
  • CLI
  1. TiDB Cloudコンソールにログインし、プロジェクトのクラスターページに移動します。

    ヒント:

    複数のプロジェクトがある場合は、左下隅にある をクリックして、別のプロジェクトに切り替えます。

  2. ターゲット クラスターの名前をクリックして概要ページに移動し、左側のナビゲーション ペインで[インポート]をクリックします。

  3. インポートページで、右上隅の「データのエクスポート先」をクリックし、ドロップダウンリストから「Google Cloud Storage」を選択します。以下のパラメータを入力します。

    • タスク名: エクスポートタスクの名前を入力します。デフォルト値はSNAPSHOT_{snapshot_time}です。
    • エクスポートされたデータ: エクスポートするデータベースとテーブルを選択します。
    • データ形式: SQLCSV 、またはParquet を選択します。
    • 圧縮: GzipSnappyZstd 、またはなしを選択します。
    • フォルダ URI : Google Cloud Storage の URI をgs://<bucket-name>/<folder-path>/形式で入力します。
    • バケット アクセス: バケットにアクセスする権限を持つ Google Cloud 認証情報ファイルをアップロードします。
  4. [エクスポート]をクリックします。

ticloud serverless export create -c <cluster-id> --target-type GCS --gcs.uri <uri> --gcs.service-account-key <service-account-key> --filter "database.table"
  • gcs.uri : gs://<bucket-name>/<folder-path>/形式の Google Cloud Storage バケットの URI。
  • gcs.service-account-key : base64 でエンコードされたサービス アカウント キー。

Azure Blob Storage にデータをエクスポートする

  • Console
  • CLI
  1. TiDB Cloudコンソールにログインし、プロジェクトのクラスターページに移動します。

    ヒント:

    複数のプロジェクトがある場合は、左下隅にある をクリックして、別のプロジェクトに切り替えます。

  2. ターゲット クラスターの名前をクリックして概要ページに移動し、左側のナビゲーション ペインで[インポート]をクリックします。

  3. インポートページで、右上隅の「データのエクスポート先」をクリックし、ドロップダウンリストから「Azure Blob Storage」を選択します。以下のパラメータを入力します。

    • タスク名: エクスポートタスクの名前を入力します。デフォルト値はSNAPSHOT_{snapshot_time}です。
    • エクスポートされたデータ: エクスポートするデータベースとテーブルを選択します。
    • データ形式: SQLCSV 、またはParquet を選択します。
    • 圧縮: GzipSnappyZstd 、またはなしを選択します。
    • フォルダー URI : Azure Blob Storage の URI をazure://<account-name>.blob.core.windows.net/<container-name>/<folder-path>/形式で入力します。
    • SASトークン: コンテナへのアクセス権を持つSASトークンを入力しますAzure ARM テンプレートでSASトークンを作成することをお勧めします。詳細については、 TiDB Cloud Serverless の外部ストレージアクセスを構成する参照してください。
  4. [エクスポート]をクリックします。

ticloud serverless export create -c <cluster-id> --target-type AZURE_BLOB --azblob.uri <uri> --azblob.sas-token <sas-token> --filter "database.table"
  • azblob.uri : (azure|https)://<account-name>.blob.core.windows.net/<container-name>/<folder-path>/形式の Azure Blob Storage の URI。
  • azblob.sas-token : Azure Blob Storage のアカウント SAS トークン。

Alibaba Cloud OSSへのデータのエクスポート

  • Console
  • CLI
  1. TiDB Cloudコンソールにログインし、プロジェクトのクラスターページに移動します。

    ヒント:

    複数のプロジェクトがある場合は、左下隅にある をクリックして、別のプロジェクトに切り替えます。

  2. ターゲット クラスターの名前をクリックして概要ページに移動し、左側のナビゲーション ペインで[インポート]をクリックします。

  3. 「インポート」ページで、右上隅の「データのエクスポート先」をクリックし、ドロップダウンリストから「Alibaba Cloud OSS」を選択します。

  4. 次のパラメータを入力してください。

    • タスク名: エクスポートタスクの名前を入力します。デフォルト値はSNAPSHOT_{snapshot_time}です。
    • エクスポートされたデータ: エクスポートするデータベースとテーブルを選択します。
    • データ形式: SQLCSV 、またはParquet を選択します。
    • 圧縮: GzipSnappyZstd 、またはなしを選択します。
    • フォルダー URI : データをエクスポートする Alibaba Cloud OSS URI をoss://<bucket-name>/<folder-path>/形式で入力します。
    • AccessKey IDAccessKey Secret : バケットにアクセスする権限を持つ AccessKey ID と AccessKey Secret を入力します。
  5. [エクスポート]をクリックします。

ticloud serverless export create -c <cluster-id> --target-type OSS --oss.uri <uri> --oss.access-key-id <access-key-id> --oss.access-key-secret <access-key-secret> --filter "database.table"
  • oss.uri : データをエクスポートする Alibaba Cloud OSS URI ( oss://<bucket-name>/<folder-path>/形式)。
  • oss.access-key-id : バケットにアクセスする権限を持つユーザーの AccessKey ID。
  • oss.access-key-secret : バケットにアクセスする権限を持つユーザーの AccessKey シークレット。

エクスポートタスクをキャンセルする

進行中のエクスポート タスクをキャンセルするには、次の手順を実行します。

  • Console
  • CLI
  1. TiDB Cloudコンソールにログインし、プロジェクトのクラスターページに移動します。

    ヒント:

    複数のプロジェクトがある場合は、左下隅にある をクリックして、別のプロジェクトに切り替えます。

  2. ターゲット クラスターの名前をクリックして概要ページに移動し、左側のナビゲーション ペインで[インポート]をクリックします。

  3. [インポート]ページで[エクスポート]をクリックして、エクスポート タスク リストを表示します。

  4. キャンセルするエクスポート タスクを選択し、 [アクション]をクリックします。

  5. ドロップダウンリストから「キャンセル」を選択します。キャンセルできるのは、実行中のエクスポートタスクのみです。

ticloud serverless export cancel -c <cluster-id> -e <export-id>

価格

ベータ期間中、エクスポートサービスは無料です。エクスポートプロセス中に生成されたリクエストユニット(RU)分の料金のみお支払いいただきます。エクスポートタスクが失敗した場合、料金は発生しません。

このページは役に立ちましたか?