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

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

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

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

エクスポート場所

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

注記:

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

ローカルファイル

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

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

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

アマゾンS3

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

  • URI: s3://<bucket-name>/<file-path>
  • 次のアクセス資格情報のいずれか:
    • アクセスキー : アクセス キーにs3:PutObjectおよびs3:ListBucket権限があることを確認します。
    • ロールARN : ロール ARN にs3:PutObjectおよびs3:ListBucket権限があることを確認します。

詳細についてはTiDB Cloud Serverless の外部ストレージ アクセスを構成する参照してください。

Google クラウド ストレージ

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

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

詳細についてはTiDB Serverless の外部ストレージ アクセスを構成する参照してください。

注記:

現在、Google Cloud Storage にエクスポートできるのはTiDB CloudCLIのみです。

Azure BLOB ストレージ

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

  • URI: azure://<account-name>.blob.core.windows.net/<container-name>/<file-path>
  • アクセス資格情報: Azure Blob Storage コンテナーの場合は共有アクセス署名 (SAS) トークントークンに、 ContainerおよびObjectリソースに対するReadおよびWriteアクセス許可があることを確認します。

詳細についてはTiDB Serverless の外部ストレージ アクセスを構成する参照してください。

注記:

現在、Azure Blob Storage にエクスポートできるのはTiDB CloudCLIのみです。

エクスポートオプション

データのフィルタリング

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

データ形式

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

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

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

アイテム圧縮されていない圧縮
データベーススキーマ{データベース}-スキーマ作成.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)
翻訳バイト配列文字列(UTF8)
日付バイト配列文字列(UTF8)
文字バイト配列文字列(UTF8)
ベクターバイト配列文字列(UTF8)
小数点(1<=p<=9)INT3210進数(p,s)
小数点(10<=p<=18)INT6410進数(p,s)
小数点(p>=19)バイト配列文字列(UTF8)
列挙バイト配列文字列(UTF8)
タイムスタンプINT64TIMESTAMP(単位=MICROS、isAdjustedToUTC=false)
日時INT64TIMESTAMP(単位=MICROS、isAdjustedToUTC=false)
INT32/
小さなINT32/
符号なし TINYINTINT32/
スモールイントINT32/
符号なし小整数INT32/
ミディアムミントINT32/
未署名のメディアミントINT32/
内部INT32/
符号なし整数固定長バイト配列(9)10進数(20,0)
ビッグイント固定長バイト配列(9)10進数(20,0)
符号なしBIGINTバイト配列文字列(UTF8)
フロートフロート/
ダブルダブル/
ブロブバイト配列/
タイニーブロブバイト配列/
ミディアムブロブバイト配列/
ロングロブバイト配列/
バイナリバイト配列/
バイナリバイト配列/
少しバイト配列/

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

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

    ヒント:

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

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

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

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

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

    • データ形式: SQL ファイルまたはCSV を選択します。

    • 圧縮: 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}です。
    • エクスポートされたデータ: エクスポートするデータベースとテーブルを選択します。
    • データ形式: SQL ファイルまたはCSV を選択します。
    • 圧縮: GzipSnappyZstd 、またはなしを選択します。
    • フォルダー URI : s3://<bucket-name>/<folder-path>/形式で Amazon S3 の URI を入力します。
    • バケット アクセス: 次のアクセス資格情報のいずれかを選択し、資格情報を入力します。資格情報がない場合は、 TiDB Cloud Serverless の外部ストレージ アクセスを構成する参照してください。
      • AWS ロール ARN : バケットにアクセスするためのs3:PutObjectおよびs3:ListBucket権限を持つロール ARN を入力します。
      • AWS アクセスキー: バケットにアクセスするためのs3:PutObjects3:ListBucketの権限を持つアクセスキー ID とアクセスキーシークレットを入力します。
  4. [エクスポート]クリックします。

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

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

現在、Google Cloud Storage にデータをエクスポートできるのはTiDB CloudCLIのみです。

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

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

現在、 TiDB CloudCLI使用してのみ Azure Blob Storage にデータをエクスポートできます。

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

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

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

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

    ヒント:

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

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

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

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

  5. ドロップダウン リストで[キャンセル]選択します。実行中ステータスのエクスポート タスクのみをキャンセルできることに注意してください。

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

価格

ベータ期間中、エクスポート サービスは無料です。成功したタスクまたはキャンセルされたタスクのエクスポート プロセス中に生成されたリクエストユニット (RU)に対してのみお支払いいただく必要があります。失敗したエクスポート タスクについては、料金は発生しません。

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