📣新登場!TiDB Cloud BYOC、TiDB Cloud Filesystem、PostgreSQL-compatible TiDB Cloud Starter がパブリックプレビュー中。このページは自動翻訳されたものです。原文はこちらからご覧ください。

MySQLコマンドラインクライアントを使用してTiDB Cloud PremiumまたはTiDB Cloud BYOCにデータをインポートする



このドキュメントでは、MySQLコマンドラインクライアント(mysql)を使用してTiDB Cloud PremiumまたはTiDB Cloud BYOCにデータをインポートする方法について説明します。以下のセクションでは、SQLファイルまたはCSVファイルからデータをインポートするための手順を順を追って説明します。このプロセスでは論理インポートが実行され、MySQLコマンドラインクライアントがローカルマシンからTiDB Cloudに対してSQLステートメントを再実行します。

前提条件

MySQLコマンドラインクライアントを使用してTiDB Cloud PremiumまたはTiDB Cloud BYOCインスタンスにデータをインポートするには、以下の前提条件を満たす必要があります。

  • TiDB Cloud PremiumまたはTiDB Cloud BYOCインスタンスへのアクセス権が付与されています。
  • ローカルコンピュータにMySQLコマンドラインクライアント(mysql)をインストールしてください。

ステップ1. TiDB Cloud PremiumまたはTiDB Cloud BYOCインスタンスに接続する

MySQLコマンドラインクライアントを使用してTiDB Cloud PremiumまたはTiDB Cloud BYOCインスタンスに接続します。初めての場合は、以下の手順を実行してネットワーク接続を設定し、TiDB SQL root ユーザーのパスワードを生成してください。

  1. TiDB Cloudコンソールにログインし、My TiDBページに移動します。次に、対象のTiDB Cloud PremiumまたはTiDB Cloud BYOCインスタンスの名前をクリックして、その概要ページに移動します。

  2. 右上隅のConnectをクリックします。接続ダイアログが表示されます。

  3. 接続ダイアログ内の設定が、ご使用の動作環境と一致していることを確認します。

    • Connection Type は Public に設定します。
    • Connect With は MySQL CLI に設定します。
    • Operating System がご使用の環境と一致していることを確認します。
  4. Generate Password をクリックしてランダムなパスワードを作成します。すでにパスワードを設定している場合は、その認証情報を再利用するか、続行する前にローテーションしてください。

ステップ2. 対象データベースとテーブルスキーマを定義する

データをインポートする前に、データセットに一致するターゲットテーブル構造を作成してください。

以下は、サンプルデータベースとテーブルを作成するSQLファイルの例です( products-schema.sql )。データベース名またはテーブル名は、ご使用の環境に合わせて更新してください。

CREATE DATABASE IF NOT EXISTS test; USE test; CREATE TABLE products ( product_id INT PRIMARY KEY, product_name VARCHAR(255), price DECIMAL(10, 2) );

次のステップでデータをロードする前に、データベースとテーブルが存在するように、スキーマファイルをTiDB Cloud PremiumまたはTiDB Cloud BYOCインスタンスに対して実行してください。

ステップ3. SQLファイルまたはCSVファイルからデータをインポートする

手順2で作成したスキーマにデータをロードするには、MySQLコマンドラインクライアントを使用します。必要に応じて、プレースホルダーを独自のファイルパス、認証情報、データセットに置き換え、ソース形式に合ったワークフローに従ってください。

    SQLファイルからデータをインポートするには、以下の手順を実行してください。

    1. インポートするデータを含む SQL ファイル (例: products.sql ) を提供してください。この SQL ファイルには、次のようなデータを含むINSERT文が含まれている必要があります。

      INSERT INTO products (product_id, product_name, price) VALUES (1, 'Laptop', 999.99), (2, 'Smartphone', 499.99), (3, 'Tablet', 299.99);
    2. SQLファイルからデータをインポートするには、以下のコマンドを使用してください。

      mysql --comments --connect-timeout 150 \ -u '<your_username>' -h <your_instance_host> -P 4000 -D test \ --ssl-mode=VERIFY_IDENTITY --ssl-ca=<your_ca_path> \ -p<your_password> < products.sql

      プレースホルダー値(例: <your_username> 、 <your_instance_host> 、 <your_password> 、 <your_ca_path> 、およびSQLファイル名)を、ご自身の接続情報とファイルパスに置き換えてください。

    CSVファイルからデータをインポートするには、以下の手順を実行してください。

    1. TiDB にターゲットのデータベースとテーブルが存在することを確認してください (例えば、ステップ 2 で作成したproductsテーブル)。

    2. インポートしたいデータを含むサンプルCSVファイル(例: products.csv )を提供してください。以下に例を示します。

      products.csv:

      product_id,product_name,price 1,Laptop,999.99 2,Smartphone,499.99 3,Tablet,299.99
    3. 以下のコマンドを使用して、CSVファイルからデータをインポートします。

      mysql --comments --connect-timeout 150 \ -u '<your_username>' -h <your_instance_host> -P 4000 -D test \ --ssl-mode=VERIFY_IDENTITY --ssl-ca=<your_ca_path> \ -p<your_password> \ -e "LOAD DATA LOCAL INFILE '<your_csv_path>' INTO TABLE products FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 LINES (product_id, product_name, price);"

      プレースホルダー値(例: <your_username> 、 <your_instance_host> 、 <your_password> 、 <your_ca_path> 、 <your_csv_path> 、およびテーブル名)を、ご自身の接続情報とデータセットパスに置き換えてください。

    ステップ4.インポートしたデータを検証する

    インポートが完了したら、基本的なクエリを実行して、期待どおりの行が存在し、データが正しいことを確認してください。

    MySQLコマンドラインクライアントを使用して同じデータベースに接続し、行数のカウントやサンプルレコードの検査などの検証クエリを実行します。

    mysql --comments --connect-timeout 150 \ -u '<your_username>' -h <your_instance_host> -P 4000 -D test \ --ssl-mode=VERIFY_IDENTITY --ssl-ca=<your_ca_path> \ -p<your_password> \ -e "SELECT COUNT(*) AS row_count FROM products; \ SELECT * FROM products ORDER BY product_id LIMIT 5;"

    期待される出力例:

    +-----------+ | row_count | +-----------+ | 3 | +-----------+ +------------+---------------+--------+ | product_id | product_name | price | +------------+---------------+--------+ | 1 | Laptop | 999.99 | | 2 | Smartphone | 499.99 | | 3 | Tablet | 299.99 | +------------+---------------+--------+

    プレースホルダーの値を実際の接続情報に置き換え、データセットの形状に合わせて検証クエリを調整してください。

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