Amazon S3からTiDB Cloud Premiumにデータをインポートする
このドキュメントでは、Amazon Simple Storage Service (Amazon S3) からTiDB Cloud Premium インスタンスに CSV ファイルをインポートする方法について説明します。
制限事項
- データの一貫性を確保するため、 TiDB Cloud Premium では、CSV ファイルを空のテーブルにのみインポートできます。対象テーブルに既にデータが含まれている場合は、ステージングテーブルにインポートしてから、
INSERT ... SELECTステートメントを使用して行をコピーしてください。 - パブリックプレビュー期間中は、ユーザーインターフェースはストレージプロバイダーとしてAmazon S3のみをサポートしています。その他のプロバイダーへの対応は、今後のリリースで追加される予定です。
- 各インポートジョブは、単一のソースパターンを1つの宛先テーブルにマッピングします。
ステップ1. CSVファイルを準備する
- CSVファイルが256MiBを超える場合は、 TiDB Cloud Premiumが並列処理できるように、256MiB程度の小さなファイルに分割することを検討してください。
- CSVファイルの名前は、 Dumplingの命名規則に従ってください。
- 完全な表ファイルの場合:
${db_name}.${table_name}.csv形式を使用してください。 - シャーディングされたファイル:
${db_name}.${table_name}.000001.csvのような数値サフィックスを追加します。 - 圧縮ファイル:
${db_name}.${table_name}.${suffix}.csv.${compress}形式を使用してください。
- 完全な表ファイルの場合:
- オプションのスキーマファイル(
${db_name}-schema-create.sql、${db_name}.${table_name}-schema.sql)を使用すると、 TiDB Cloud Premium はデータベースとテーブルを自動的に作成できます。
ステップ2.ターゲットスキーマを作成する(オプション)
TiDB Cloud Premiumでデータベースとテーブルを自動的に作成する場合は、 Dumplingで生成されたスキーマファイルを同じS3ディレクトリに配置してください。そうでない場合は、インポートを実行する前に、 TiDB Cloud Premiumでデータベースとテーブルを手動で作成してください。
ステップ3. Amazon S3へのアクセスを設定する
TiDB Cloud Premiumがバケットを読み取れるようにするには、以下のいずれかの方法を使用してください。
- TiDB Cloudを信頼し、関連するパスに対して
s3:GetObjectおよびs3:ListBucket権限を付与するAWSロールARNを指定します。 - 同等の権限を持つAWSアクセスキー(アクセスキーIDとシークレットアクセスキー)を提供してください。
ウィザードには、「AWS CloudFormation を使用して新しいロールを作成するには、ここをクリックしてください」というラベルの付いたヘルプリンクが含まれています。TiDB Cloud Premium で CloudFormation スタックを事前に設定してロールを作成する必要がある場合は、このリンクをクリックしてください。
ステップ4. Amazon S3からCSVファイルをインポートする
TiDB Cloudコンソールで、My TiDBページに移動し、 TiDB Cloud Premiumインスタンスの名前をクリックします。
左側のナビゲーションペインで、 [データ] > [インポート]をクリックし、 [クラウドストレージからデータをインポート]を選択します。
ソース接続ダイアログで:
- ストレージプロバイダーをAmazon S3に設定します。
- 単一ファイル(
s3://bucket/path/file.csv)またはフォルダ(s3://bucket/path/)のソースファイルURIを入力します。 - AWSロールARNまたはAWSアクセスキーを選択し、認証情報を入力してください。
- 接続を確認するには、 「テストバケットアクセス」をクリックしてください。<!--Todo-- 既知のプレビューの問題: ボタンをクリックすると、成功のトーストが表示されずにアイドル状態に戻ります。-->
「次へ」をクリックし、インポートジョブに使用するTiDB SQLのユーザー名とパスワードを入力してください。必要に応じて、接続テストを実行してください。
自動生成されたソースとターゲットのマッピングを確認してください。カスタムパターンと宛先テーブルを定義する必要がある場合は、自動マッピングを無効にしてください。
「次へ」をクリックして事前チェックを実行してください。ファイルが見つからない、またはスキーマが互換性がないといった警告が表示された場合は、解決してください。
「インポート開始」をクリックしてジョブグループを起動します。
ジョブのステータスが「完了」と表示されるまで監視し、その後、 TiDB Cloudにインポートされたデータを確認します。
トラブルシューティング
- 事前チェックでファイルがゼロと報告された場合は、S3パスとIAM権限を確認してください。
- ジョブが「準備中」のままになっている場合は、宛先テーブルが空であること、および必要なスキーマファイルが存在することを確認してください。
- マッピングや認証情報を調整する必要がある場合は、キャンセル操作を使用してジョブグループを停止してください。
次のステップ
- スクリプトによるインポートについてはMySQLコマンドラインクライアントを使用してTiDB Cloud Premiumにデータをインポートするを参照してください。
- IAM関連の問題についてはAmazon S3からのデータインポート中に発生するアクセス拒否エラーのトラブルシューティングを参照してください。