MySQLコマンドラインクライアントを使用してTiDB Cloud Premiumにデータをインポートする
このドキュメントではMySQLコマンドラインクライアントを使用してTiDB Cloud Premium にデータをインポートする方法について説明します。( mysql )。以下のセクションでは、SQL ファイルまたは CSV ファイルからデータをインポートするための手順を段階的に説明します。このプロセスでは論理インポートが実行され、MySQL コマンドライン クライアントがローカル マシンからTiDB Cloudに対して SQL ステートメントを再生します。
前提条件
MySQLコマンドラインクライアントを使用してTiDB Cloud Premiumインスタンスにデータをインポートするには、以下の前提条件を満たす必要があります。
- TiDB Cloud Premiumインスタンスへのアクセス権が付与されています。
- ローカルコンピュータにMySQLコマンドラインクライアント(
mysql)をインストールしてください。
ステップ1. TiDB Cloud Premiumインスタンスに接続します。
MySQLコマンドラインクライアントを使用してTiDB Cloud Premiumインスタンスに接続します。初めて接続する場合は、以下の手順を実行してネットワーク接続を設定し、 TiDB SQL rootユーザーパスワードを生成してください。
TiDB Cloudコンソールにログインし、My TiDBページに移動します。次に、ターゲットのTiDB Cloud Premium インスタンスの名前をクリックして、その概要ページに移動します。
右上隅の「接続」をクリックしてください。接続ダイアログが表示されます。
接続ダイアログの設定がご使用のオペレーティング環境と一致していることを確認してください。
接続タイプは
Publicに設定されています。「接続」は
MySQL CLIに設定されています。お使いの環境に合ったオペレーティングシステムを選択してください。
「パスワードを生成」をクリックすると、ランダムなパスワードが生成されます。既にパスワードを設定している場合は、そのパスワードを再利用するか、変更してから先に進んでください。
ステップ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インスタンスに対して実行してください。
ステップ3. SQLファイルまたはCSVファイルからデータをインポートする
手順2で作成したスキーマにデータをロードするには、MySQLコマンドラインクライアントを使用します。必要に応じて、プレースホルダーを独自のファイルパス、認証情報、データセットに置き換え、ソース形式に合ったワークフローに従ってください。
SQLファイルからデータをインポートするには、以下の手順を実行してください。
インポートするデータを含む 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);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ファイルからデータをインポートするには、以下の手順を実行してください。
TiDB にターゲットのデータベースとテーブルが存在することを確認してください (例えば、ステップ 2 で作成した
productsテーブル)。インポートしたいデータを含むサンプルCSVファイル(例:
products.csv)を提供してください。以下に例を示します。products.csv:
product_id,product_name,price 1,Laptop,999.99 2,Smartphone,499.99 3,Tablet,299.99以下のコマンドを使用して、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 |
+------------+---------------+--------+
プレースホルダーの値を実際の接続情報に置き換え、データセットの形状に合わせて検証クエリを調整してください。