📣
TiDB Cloud Premium はパブリックプレビュー中です。エンタープライズワークロード向けの無制限のスケーリング、即時の弾力性、高度なセキュリティを提供します。このページは自動翻訳されたものです。原文はこちらからご覧ください。

クラウドストレージからTiDB Cloud StarterまたはEssentialにApache Parquetファイルをインポートする



TiDB Cloud StarterまたはTiDB Cloud EssentialApache ParquetTiDB Cloud Starterファイルをインポートする方法についてTiDB Cloud Essential。

注記:

  • TiDB Cloud Dedicatedについては、クラウドストレージからParquetファイルをTiDB Cloud Dedicatedにインポートする
  • TiDB Cloud は、空のテーブルへの Parquet ファイルのインポートのみをサポートしています。既にデータが含まれている既存のテーブルにデータをインポートするには、このドキュメントの手順に従って一時的な空のテーブルにデータをインポートし、 INSERT SELECTステートメントを使用してデータを対象の既存のテーブルにコピーします。
  • Snappy 圧縮ファイルは公式Snappyフォーマットに存在する必要があります。 Snappy 圧縮の他のバリアントはサポートされていません。

ステップ1. Parquetファイルを準備する

注記:

現在、 TiDB Cloud、サポートされているデータ型のデータ型を含む Parquet ファイルのインポートはサポートされていません。インポートする Parquet ファイルにこれらのデータ型が含まれている場合は、まず (例: STRING ) を使用して Parquet ファイルを再生成する必要があります。または、AWS Glue などのサービスを使用してデータ型を簡単に変換することもできます。

  • LIST
  • NEST STRUCT
  • BOOL
  • ARRAY
  • MAP
  1. Parquetファイルが256MBを超える場合は、それぞれ約256MBのサイズの小さなファイルに分割することを検討してください。

    TiDB Cloudは非常に大きなParquetファイルのインポートをサポートしていますが、256MB程度の複数の入力ファイルを使用した場合に最高のパフォーマンスを発揮します。これは、 TiDB Cloudが複数のファイルを並列処理できるため、インポート速度を大幅に向上させることができるからです。

  2. Parquetファイルの名前は以下のようにしてください。

    • Parquet ファイルにテーブル全体のデータがすべて含まれている場合は、ファイルを${db_name}.${table_name}.parquet形式で命名してください。この形式は、データをインポートする際に${db_name}.${table_name}テーブルにマッピングされます。

    • 1つのテーブルのデータが複数のParquetファイルに分割されている場合は、これらのParquetファイルに数値サフィックスを追加してください。例えば、 ${db_name}.${table_name}.000001.parquet${db_name}.${table_name}.000002.parquetのようにです。数値サフィックスは連続していなくても構いませんが、昇順である必要があります。また、すべてのサフィックスの長さが同じになるように、数値の前にゼロを追加する必要があります。

    注記:

    場合によっては、前述のルールに従って Parquet ファイル名を更新できないことがあります (たとえば、Parquet ファイル リンクが他のプログラムでも使用されている場合)。その場合は、ファイル名を変更せずに、ステップ4マッピング設定を使用してソース データを単一のターゲット テーブルにインポートできます。

ステップ2.対象テーブルのスキーマを作成する

Parquetファイルにはスキーマ情報が含まれていないため、ParquetファイルからTiDB Cloudにデータをインポートする前に、以下のいずれかの方法を使用してテーブルスキーマを作成する必要があります。

  • 方法1: TiDB Cloudで、ソースデータ用のターゲットデータベースとテーブルを作成します。

  • 方法2:Parquetファイルが配置されているAmazon S3、GCS、Azure Blob Storage、またはAlibaba Cloud Object Storage Serviceのディレクトリで、ソースデータのターゲットテーブルスキーマファイルを次のように作成します。

    1. ソースデータ用のデータベーススキーマファイルを作成します。

      ステップ1の命名規則に従ってParquetファイルが作成されている場合、データベーススキーマファイルはデータインポートにおいてオプションです。そうでない場合は、データベーススキーマファイルは必須です。

      各データベーススキーマファイルは${db_name}-schema-create.sql形式である必要があり、 CREATE DATABASE DDLステートメントが含まれている必要があります。このファイルを使用すると、 TiDB Cloudは${db_name}データベースを作成し、データのインポート時にそのデータベースにデータを格納します。

      例えば、次のステートメントを含むmydb-schema-create.sqlファイルを作成すると、 TiDB Cloud はデータをインポートする際にmydbデータベースを作成します。

      CREATE DATABASE mydb;
    2. ソースデータ用のテーブルスキーマファイルを作成します。

      Parquet ファイルが格納されている Amazon S3、GCS、Azure Blob Storage、または Alibaba Cloud Object Storage Service ディレクトリにテーブルスキーマファイルを含めない場合、 TiDB Cloud はデータのインポート時に対応するテーブルを作成しません。

      各テーブルスキーマファイルは${db_name}.${table_name}-schema.sql形式で、 CREATE TABLE DDLステートメントを含んでいる必要があります。このファイルを使用すると、 TiDB Cloudはデータのインポート時に${db_table}データベースに${db_name}テーブルを作成します。

      例えば、次のステートメントを含むmydb.mytable-schema.sqlファイルを作成すると、 TiDB Cloud はデータをインポートする際にmytableデータベースにmydbテーブルを作成します。

      CREATE TABLE mytable ( ID INT, REGION VARCHAR(20), COUNT INT );

      注記:

      ${db_name}.${table_name}-schema.sqlファイルには、単一の DDL ステートメントのみを含める必要があります。ファイルに複数の DDL ステートメントが含まれている場合、最初のステートメントのみが有効になります。

ステップ3.アカウント間アクセスの設定

TiDB CloudがAmazon S3、GCS、Azure Blob Storage、またはAlibaba Cloud Object Storage Serviceバケット内のParquetファイルにアクセスできるようにするには、次のいずれかの操作を行います。

ステップ4.Parquetファイルをインポートする

TiDB Cloud StarterまたはTiDB Cloud EssentialにParquetファイルをインポートするには、以下の手順を実行してください。

    1. 対象のTiDB Cloud StarterまたはEssentialインスタンスのインポートページを開きます。

      1. TiDB Cloudコンソールにログインし、私のTiDBページに移動します。

        ヒント:

        複数の組織に所属している場合は、左上隅のコンボボックスを使用して、まず目的の組織に切り替えてください。

      2. 対象のTiDB Cloud StarterまたはEssentialインスタンスの名前をクリックして概要ページに移動し、左側のナビゲーションペインで「データ」 > 「インポート」をクリックします。

    2. 「クラウドストレージからデータをインポート」をクリックします。

    3. 「クラウドストレージからデータをインポート」ページで、以下の情報を入力してください。

      • ストレージプロバイダーAmazon S3を選択してください。
      • ソースファイルURI
        • 1 つのファイルをインポートする場合は、ソースファイルの URI をs3://[bucket_name]/[data_source_folder]/[file_name].parquetの形式で入力してください。例: s3://sampledata/ingest/TableName.01.parquet
        • 複数のファイルをインポートする場合は、ソースフォルダのURIをs3://[bucket_name]/[data_source_folder]/の形式で入力してください。例: s3://sampledata/ingest/
      • 認証情報: AWS ロール ARN または AWS アクセス キーを使用してバケットにアクセスできます。詳細については、 Amazon S3へのアクセスを設定する参照してください。
        • AWSロールARN :AWSロールARNの値を入力してください。
        • AWSアクセスキー:AWSアクセスキーIDとAWSシークレットアクセスキーを入力してください。
    4. 「次へ」をクリックしてください。

    5. 「宛先マッピング」セクションで、ソースファイルをターゲットテーブルにどのようにマッピングするかを指定します。

      ソースファイルURIでディレクトリが指定されている場合、 「自動マッピングにファイル命名規則を使用する」オプションがデフォルトで選択されます。

      注記:

      ソースファイルURIで単一のファイルが指定されている場合、 「自動マッピングにファイル命名規則を使用する」オプションは表示されず、 TiDB Cloudはソースフィールドにファイル名を自動的に入力します。この場合、データインポートの対象となるデータベースとテーブルを選択するだけで済みます。

      • TiDB Cloud がファイル命名規則に従うすべてのソース ファイルを対応するテーブルに自動的にマップできるようにするには、このオプションを選択したままにして、データ形式としてParquet を選択します。

      • ソース Parquet ファイルをターゲットのデータベースおよびテーブルに関連付けるためのマッピング ルールを手動で構成するには、このオプションの選択を解除し、次のフィールドに入力します。

        • ソース: ファイル名のパターンを[file_name].parquetの形式で入力してください。例: TableName.01.parquet 。ワイルドカードを使用して複数のファイルを照合することもできます。 *?ワイルドカードのみがサポートされています。

          • my-data?.parquet : my-data my-data1.parquetmy-data2.parquetのような 1 文字が続くすべての Parquet ファイルに一致します。
          • my-data*.parquet : my-dataで始まるすべての Parquet ファイルに一致します。たとえばmy-data-2023.parquetmy-data-final.parquetなどです。
        • 対象データベース対象テーブル:データをインポートする対象データベースとテーブルを選択します。

    6. 「次へ」をクリックしてください。TiDB Cloudがソースファイルを適切にスキャンします。

    7. スキャン結果を確認し、検出されたデータファイルと対応するターゲットテーブルをチェックしてから、 「インポート開始」をクリックします。

    8. インポートの進行状況が「完了」と表示されたら、インポートされたテーブルを確認してください。

    1. 対象のTiDB Cloud StarterまたはEssentialインスタンスのインポートページを開きます。

      1. TiDB Cloudコンソールにログインし、私のTiDBページに移動します。

        ヒント:

        複数の組織に所属している場合は、左上隅のコンボボックスを使用して、まず目的の組織に切り替えてください。

      2. 対象のTiDB Cloud StarterまたはEssentialインスタンスの名前をクリックして概要ページに移動し、左側のナビゲーションペインで「データ」 > 「インポート」をクリックします。

    2. 「クラウドストレージからデータをインポート」をクリックします。

    3. 「クラウドストレージからデータをインポート」ページで、以下の情報を入力してください。

      • ストレージプロバイダーGoogle Cloud Storageを選択してください。
      • ソースファイルURI
        • 1 つのファイルをインポートする場合は、ソースファイルの URI を[gcs|gs]://[bucket_name]/[data_source_folder]/[file_name].parquetの形式で入力してください。例: [gcs|gs]://sampledata/ingest/TableName.01.parquet
        • 複数のファイルをインポートする場合は、ソースフォルダのURIを[gcs|gs]://[bucket_name]/[data_source_folder]/の形式で入力してください。例: [gcs|gs]://sampledata/ingest/
      • 認証情報: GCS IAM役割サービス アカウント キーを使用してバケットにアクセスできます。詳細については、 GCSへのアクセスを設定する参照してください。
    4. 「次へ」をクリックしてください。

    5. 「宛先マッピング」セクションで、ソースファイルをターゲットテーブルにどのようにマッピングするかを指定します。

      ソースファイルURIでディレクトリが指定されている場合、 「自動マッピングにファイル命名規則を使用する」オプションがデフォルトで選択されます。

      注記:

      ソースファイルURIで単一のファイルが指定されている場合、 「自動マッピングにファイル命名規則を使用する」オプションは表示されず、 TiDB Cloudはソースフィールドにファイル名を自動的に入力します。この場合、データインポートの対象となるデータベースとテーブルを選択するだけで済みます。

      • TiDB Cloud がファイル命名規則に従うすべてのソース ファイルを対応するテーブルに自動的にマッピングするには、このオプションを選択したままにして、データ形式としてParquet を選択します。

      • ソース Parquet ファイルをターゲットのデータベースおよびテーブルに関連付けるためのマッピング ルールを手動で構成するには、このオプションの選択を解除し、次のフィールドに入力します。

        • ソース: ファイル名のパターンを[file_name].parquetの形式で入力してください。例: TableName.01.parquet 。ワイルドカードを使用して複数のファイルを照合することもできます。 *?ワイルドカードのみがサポートされています。

          • my-data?.parquet : my-data my-data1.parquetmy-data2.parquetのような 1 文字が続くすべての Parquet ファイルに一致します。
          • my-data*.parquet : my-dataで始まるすべての Parquet ファイルに一致します。たとえばmy-data-2023.parquetmy-data-final.parquetなどです。
        • 対象データベース対象テーブル:データをインポートする対象データベースとテーブルを選択します。

    6. 「次へ」をクリックしてください。TiDB Cloudがソースファイルを適切にスキャンします。

    7. スキャン結果を確認し、検出されたデータファイルと対応するターゲットテーブルをチェックしてから、 「インポート開始」をクリックします。

    8. インポートの進行状況が「完了」と表示されたら、インポートされたテーブルを確認してください。

    1. 対象のTiDB Cloud StarterまたはEssentialインスタンスのインポートページを開きます。

      1. TiDB Cloudコンソールにログインし、私のTiDBページに移動します。

        ヒント:

        複数の組織に所属している場合は、左上隅のコンボボックスを使用して、まず目的の組織に切り替えてください。

      2. 対象のTiDB Cloud StarterまたはEssentialインスタンスの名前をクリックして概要ページに移動し、左側のナビゲーションペインで「データ」 > 「インポート」をクリックします。

    2. 「クラウドストレージからデータをインポート」をクリックします。

    3. 「クラウドストレージからデータをインポート」ページで、以下の情報を入力してください。

      • ストレージプロバイダーAzure Blob Storageを選択します。
      • ソースファイルURI
        • 1 つのファイルをインポートする場合は、ソースファイルの URI を[azure|https]://[bucket_name]/[data_source_folder]/[file_name].parquetの形式で入力してください。例: [azure|https]://sampledata/ingest/TableName.01.parquet
        • 複数のファイルをインポートする場合は、ソースフォルダのURIを[azure|https]://[bucket_name]/[data_source_folder]/の形式で入力してください。例: [azure|https]://sampledata/ingest/
      • 資格情報: Shared Access Signature (SAS) トークンを使用してバケットにアクセスできます。詳細については、 Azure Blob Storageへのアクセスを構成する参照してください。
    4. 「次へ」をクリックしてください。

    5. 「宛先マッピング」セクションで、ソースファイルをターゲットテーブルにどのようにマッピングするかを指定します。

      ソースファイルURIでディレクトリが指定されている場合、 「自動マッピングにファイル命名規則を使用する」オプションがデフォルトで選択されます。

      注記:

      ソースファイルURIで単一のファイルが指定されている場合、 「自動マッピングにファイル命名規則を使用する」オプションは表示されず、 TiDB Cloudはソースフィールドにファイル名を自動的に入力します。この場合、データインポートの対象となるデータベースとテーブルを選択するだけで済みます。

      • TiDB Cloud がファイル命名規則に従うすべてのソース ファイルを対応するテーブルに自動的にマッピングするには、このオプションを選択したままにして、データ形式としてParquet を選択します。

      • ソース Parquet ファイルをターゲットのデータベースおよびテーブルに関連付けるためのマッピング ルールを手動で構成するには、このオプションの選択を解除し、次のフィールドに入力します。

        • ソース: ファイル名のパターンを[file_name].parquetの形式で入力してください。例: TableName.01.parquet 。ワイルドカードを使用して複数のファイルを照合することもできます。 *?ワイルドカードのみがサポートされています。

          • my-data?.parquet : my-data my-data1.parquetmy-data2.parquetのような 1 文字が続くすべての Parquet ファイルに一致します。
          • my-data*.parquet : my-dataで始まるすべての Parquet ファイルに一致します。たとえばmy-data-2023.parquetmy-data-final.parquetなどです。
        • 対象データベース対象テーブル:データをインポートする対象データベースとテーブルを選択します。

    6. 「次へ」をクリックしてください。TiDB Cloudがソースファイルを適切にスキャンします。

    7. スキャン結果を確認し、検出されたデータファイルと対応するターゲットテーブルをチェックしてから、 「インポート開始」をクリックします。

    8. インポートの進行状況が「完了」と表示されたら、インポートされたテーブルを確認してください。

    1. 対象のTiDB Cloud StarterまたはEssentialインスタンスのインポートページを開きます。

      1. TiDB Cloudコンソールにログインし、私のTiDBページに移動します。

        ヒント:

        複数の組織に所属している場合は、左上隅のコンボボックスを使用して、まず目的の組織に切り替えてください。

      2. 対象のTiDB Cloud StarterまたはEssentialインスタンスの名前をクリックして概要ページに移動し、左側のナビゲーションペインで「データ」 > 「インポート」をクリックします。

    2. 「クラウドストレージからデータをインポート」をクリックします。

    3. 「クラウドストレージからデータをインポート」ページで、以下の情報を入力してください。

      • ストレージプロバイダーAlibaba Cloud OSSを選択してください。
      • ソースファイルURI
        • 1 つのファイルをインポートする場合は、ソースファイルの URI をoss://[bucket_name]/[data_source_folder]/[file_name].parquetの形式で入力してください。例: oss://sampledata/ingest/TableName.01.parquet
        • 複数のファイルをインポートする場合は、ソースフォルダのURIをoss://[bucket_name]/[data_source_folder]/の形式で入力してください。例: oss://sampledata/ingest/
      • Credential : AccessKey ペアを使用してバケットにアクセスできます。詳細については、 Alibaba Cloudオブジェクトストレージサービス(OSS)へのアクセスを設定する参照してください。
    4. 「次へ」をクリックしてください。

    5. 「宛先マッピング」セクションで、ソースファイルをターゲットテーブルにどのようにマッピングするかを指定します。

      ソースファイルURIでディレクトリが指定されている場合、 「自動マッピングにファイル命名規則を使用する」オプションがデフォルトで選択されます。

      注記:

      ソースファイルURIで単一のファイルが指定されている場合、 「自動マッピングにファイル命名規則を使用する」オプションは表示されず、 TiDB Cloudはソースフィールドにファイル名を自動的に入力します。この場合、データインポートの対象となるデータベースとテーブルを選択するだけで済みます。

      • TiDB Cloud がファイル命名規則に従うすべてのソース ファイルを対応するテーブルに自動的にマッピングするには、このオプションを選択したままにして、データ形式としてParquet を選択します。

      • ソース Parquet ファイルをターゲットのデータベースおよびテーブルに関連付けるためのマッピング ルールを手動で構成するには、このオプションの選択を解除し、次のフィールドに入力します。

        • ソース: ファイル名のパターンを[file_name].parquetの形式で入力してください。例: TableName.01.parquet 。ワイルドカードを使用して複数のファイルを照合することもできます。 *?ワイルドカードのみがサポートされています。

          • my-data?.parquet : my-data my-data1.parquetmy-data2.parquetのような 1 文字が続くすべての Parquet ファイルに一致します。
          • my-data*.parquet : my-dataで始まるすべての Parquet ファイルに一致します。たとえばmy-data-2023.parquetmy-data-final.parquetなどです。
        • 対象データベース対象テーブル:データをインポートする対象データベースとテーブルを選択します。

    6. 「次へ」をクリックしてください。TiDB Cloudがソースファイルを適切にスキャンします。

    7. スキャン結果を確認し、検出されたデータファイルと対応するターゲットテーブルをチェックしてから、 「インポート開始」をクリックします。

    8. インポートの進行状況が「完了」と表示されたら、インポートされたテーブルを確認してください。

    インポートタスクを実行する際に、サポートされていない変換や無効な変換が検出された場合、 TiDB Cloud はインポートジョブを自動的に終了し、インポートエラーを報告します。

    インポートエラーが発生した場合は、以下の手順を実行してください。

    1. 部分的にインポートされたテーブルを削除します。

    2. テーブルスキーマファイルを確認してください。エラーがある場合は、テーブルスキーマファイルを修正してください。

    3. Parquetファイル内のデータ型を確認してください。

      Parquet ファイルにサポートされていないデータ型 (たとえば、 NEST STRUCTARRAY 、またはMAP ) が含まれている場合は、サポートされているデータサポートされているデータ型(たとえば、 STRING )。

    4. インポートタスクをもう一度実行してみてください。

    サポートされているデータ型

    以下の表は、TiDB Cloud StarterおよびTiDB Cloud Essentialにインポートできるサポートされている Parquet データ型の一覧です。

    Parquet プリミティブ型Parquet 論理型TiDBまたはMySQLの型
    DOUBLEDOUBLEDOUBLE
    FLOAT
    FIXED_LEN_BYTE_ARRAY(9)DECIMAL(20,0)BIGINT UNSIGNED
    FIXED_LEN_BYTE_ARRAY(N)DECIMAL(p,s)DECIMAL
    NUMERIC
    INT32DECIMAL(p,s)DECIMAL
    NUMERIC
    INT32N/AINT
    MEDIUMINT
    YEAR
    INT64DECIMAL(p,s)DECIMAL
    NUMERIC
    INT64N/ABIGINT
    INT UNSIGNED
    MEDIUMINT UNSIGNED
    INT64TIMESTAMP_MICROSDATETIME
    TIMESTAMP
    BYTE_ARRAYN/ABINARY
    BIT
    BLOB
    CHAR
    LINESTRING
    LONGBLOB
    MEDIUMBLOB
    MULTILINESTRING
    TINYBLOB
    VARBINARY
    BYTE_ARRAYSTRINGENUM
    DATE
    DECIMAL
    GEOMETRY
    GEOMETRYCOLLECTION
    JSON
    LONGTEXT
    MEDIUMTEXT
    MULTIPOINT
    MULTIPOLYGON
    NUMERIC
    POINT
    POLYGON
    SET
    TEXT
    TIME
    TINYTEXT
    VARCHAR
    SMALLINTN/AINT32
    SMALLINT UNSIGNEDN/AINT32
    TINYINTN/AINT32
    TINYINT UNSIGNEDN/AINT32

    トラブルシューティング

    データインポート中の警告を解決する

    [インポートの開始]をクリックした後、 can't find the corresponding source filesなどの警告メッセージが表示された場合は、正しいソース ファイルを提供するか、 データインポートの命名規則に従って既存のファイルの名前を変更するか、詳細設定を使用して変更することで問題を解決します。

    これらの問題を解決した後、データを再度インポートする必要があります。

    インポートされたテーブルに行が0件あります

    インポートの進行状況が「完了」と表示されたら、インポートされたテーブルを確認してください。行数がゼロの場合は、入力したバケットURIに一致するデータファイルがなかったことを意味します。この場合は、正しいソースファイルを指定するか、既存のファイルをデータインポートの命名規則に従って名前変更するか、または詳細設定を使用して変更することで問題を解決してください。その後、再度テーブルをインポートしてください。

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