stage からのロード
TiDB Cloud Lake では、ユーザー stage または内部/外部 stage にアップロードされたファイルからデータを簡単にインポートできます。これを行うには、まず LakeSQL を使用してファイルを stage にアップロードし、その後 COPY INTO コマンドを使用して stage 上のファイルからデータをロードできます。ファイルは TiDB Cloud Lake がサポートする形式である必要があり、そうでない場合はデータをインポートできません。TiDB Cloud Lake がサポートするファイル形式の詳細については、入出力ファイル形式 を参照してください。
以下のチュートリアルでは、stage 内のファイルからデータをロードする手順を、ステップごとに詳しく説明します。
始める前に
開始する前に、次のタスクを完了していることを確認してください。
- サンプルファイル books.parquet をダウンロードし、ローカルフォルダに保存します。このファイルには 2 件のレコードが含まれています。
Transaction Processing,Jim Gray,1992
Readings in Database Systems,Michael Stonebraker,2004
- TiDB Cloud Lake で次の SQL 文を使用してテーブルを作成します。
USE default;
CREATE TABLE books
(
title VARCHAR,
author VARCHAR,
date VARCHAR
);
チュートリアル 1: ユーザー stage からのロード
このチュートリアルでは、サンプルファイルをユーザー stage にアップロードし、stage 上のファイルから TiDB Cloud Lake にデータをロードする方法を説明します。
ステップ 1. サンプルファイルをアップロードする
LakeSQL を使用してサンプルファイルをアップロードします。
root@localhost:8000/default> PUT fs:///Users/eric/Documents/books.parquet @~ ┌───────────────────────────────────────────────┐ │ file │ status │ │ String │ String │ ├─────────────────────────────────────┼─────────┤ │ /Users/eric/Documents/books.parquet │ SUCCESS │ └───────────────────────────────────────────────┘stage 上のファイルを確認します。
LIST @~;
name |size|md5 |last_modified |creator|
-------------+----+----------------------------------+-----------------------------+-------+
books.parquet| 998|"88432bf90aadb79073682988b39d461c"|2023-06-27 16:03:51.000 +0000| |
ステップ 2. テーブルにデータをコピーする
COPY INTO コマンドを使用して、対象テーブルにデータをロードします。
COPY INTO books FROM @~ files=('books.parquet') FILE_FORMAT = (TYPE = PARQUET);ロードされたデータを確認します。
SELECT * FROM books;
---
title |author |date|
----------------------------+-------------------+----+
Transaction Processing |Jim Gray |1992|
Readings in Database Systems|Michael Stonebraker|2004|
チュートリアル 2: 内部 stage からのロード
このチュートリアルでは、サンプルファイルを内部 stage にアップロードし、stage 上のファイルから TiDB Cloud Lake にデータをロードする方法を説明します。
ステップ 1. 内部 stage を作成する
CREATE STAGE コマンドを使用して内部 stage を作成します。
CREATE STAGE my_internal_stage;作成した stage を確認します。
SHOW STAGES; ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ name │ stage_type │ storage_type │ url │ endpoint │ has_credentials │ has_encryption_key │ storage_params │ file_format_options │ creator │ created_on │ comment │ owner │ │ String │ String │ Nullable(String) │ Nullable(String) │ Nullable(String) │ Boolean │ Boolean │ Nullable(Variant) │ Variant │ Nullable(String) │ Timestamp │ String │ Nullable(String) │ ├───────────────────┼────────────┼──────────────────┼──────────────────┼──────────────────┼─────────────────┼───────────────────────┼───────────────────┼──────────────────────┼──────────────────┼─────────────┼─────────┼──────────────────┤ │ my_internal_stage │ Internal │ NULL │ NULL │ NULL │ false │ false │ NULL │ {"compression":"Zst… │ 'root'@'%' │ 2026-06-16 │ │ account_admin │ │ │ │ │ │ │ │ │ │ │ │ 22:21:19… │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ステップ 2. サンプルファイルをアップロードする
LakeSQL を使用してサンプルファイルをアップロードします。
root@localhost:8000/default> CREATE STAGE my_internal_stage; root@localhost:8000/default> PUT fs:///Users/eric/Documents/books.parquet @my_internal_stage ┌───────────────────────────────────────────────┐ │ file │ status │ │ String │ String │ ├─────────────────────────────────────┼─────────┤ │ /Users/eric/Documents/books.parquet │ SUCCESS │ └───────────────────────────────────────────────┘stage 上のファイルを確認します。
LIST @my_internal_stage;
name |size |md5 |last_modified |creator|
-----------------------------------+------+----------------------------------+-----------------------------+-------+
books.parquet | 998|"88432bf90aadb79073682988b39d461c"|2023-06-28 02:32:15.000 +0000| |
ステップ 3. テーブルにデータをコピーする
COPY INTO コマンドを使用して、対象テーブルにデータをロードします。
COPY INTO books FROM @my_internal_stage FILES = ('books.parquet') FILE_FORMAT = ( TYPE = 'PARQUET' );ロードされたデータを確認します。
SELECT * FROM books;
---
title |author |date|
----------------------------+-------------------+----+
Transaction Processing |Jim Gray |1992|
Readings in Database Systems|Michael Stonebraker|2004|
チュートリアル 3: 外部 stage からのロード
このチュートリアルでは、サンプルファイルを外部 stage にアップロードし、stage 上のファイルから TiDB Cloud Lake にデータをロードする方法を説明します。
ステップ 1. 外部 stage を作成する
CREATE STAGE コマンドを使用して外部 stage を作成します。
CREATE STAGE my_external_stage URL = 's3://lake' CONNECTION = ( ENDPOINT_URL = 'http://127.0.0.1:9000', ACCESS_KEY_ID = 'ROOTUSER', SECRET_ACCESS_KEY = 'CHANGEME123' );作成した stage を確認します。
SHOW STAGES; name |stage_type|creator |comment| -----------------+----------+------------------+-------+ my_external_stage|External |'root'@'%'| |
ステップ 2. サンプルファイルをアップロードする
LakeSQL を使用してサンプルファイルをアップロードします。
root@localhost:8000/default> PUT fs:///Users/eric/Documents/books.parquet @my_external_stage ┌───────────────────────────────────────────────┐ │ file │ status │ │ String │ String │ ├─────────────────────────────────────┼─────────┤ │ /Users/eric/Documents/books.parquet │ SUCCESS │ └───────────────────────────────────────────────┘stage に配置されたファイルを確認します。
LIST @my_external_stage; name |size|md5 |last_modified |creator| -------------+----+----------------------------------+-----------------------------+-------+ books.parquet| 998|"88432bf90aadb79073682988b39d461c"|2023-06-28 04:13:15.178 +0000| |
ステップ 3. テーブルにデータをコピーする
COPY INTO コマンドを使用して、対象テーブルにデータをロード (load) します。
COPY INTO books FROM @my_external_stage FILES = ('books.parquet') FILE_FORMAT = ( TYPE = 'PARQUET' );ロードされたデータを確認します。
SELECT * FROM books;
---
title |author |date|
----------------------------+-------------------+----+
Transaction Processing |Jim Gray |1992|
Readings in Database Systems|Michael Stonebraker|2004|
