メインコンテンツまでスキップ
バージョン: 4.x

ローカルファイル

Dorisはローカルソースからデータを読み込むための複数の方法を提供しています:

1. Stream Load

HTTPプロトコルを介してローカルファイルやデータストリームをDorisに読み込みます。CSV、JSON、Parquet、ORCフォーマットをサポートしています。詳細については、Stream Loadドキュメントを参照してください。

2. Streamloaderツール

StreamloaderツールはStream Loadに基づいて、Dorisデータベースにデータを読み込むための専用クライアントツールです。複数ファイルや並行読み込み機能を提供し、大量のデータの読み込みに必要な時間を短縮できます。詳細なドキュメントについては、Streamloaderを参照してください。

3. MySQL Load

Dorisは MySQL プロトコルと互換性があり、標準のLOAD DATA構文を使用してローカルファイルを読み込むことをサポートしており、CSVファイルの読み込みに適しています。

Stream Loadを使用したデータの読み込み

ステップ1:データの準備

以下の内容でstreamload_example.csvという名前のCSVファイルを作成します:

1,Emily,25
2,Benjamin,35
3,Olivia,28
4,Alexander,60
5,Ava,17
6,William,69
7,Sophia,32
8,James,64
9,Emma,37
10,Liam,64

ステップ 2: Tableの作成

以下の構文を使用してDorisでTableを作成します:

CREATE TABLE testdb.test_streamload(
user_id BIGINT NOT NULL COMMENT "User ID",
name VARCHAR(20) COMMENT "User Name",
age INT COMMENT "User Age"
)
DUPLICATE KEY(user_id)
DISTRIBUTED BY HASH(user_id) BUCKETS 10;

ステップ 3: データの読み込み

curlを使用してStream Loadジョブを送信します:

curl --location-trusted -u <doris_user>:<doris_password> \
-H "column_separator:," \
-H "columns:user_id,name,age" \
-T streamload_example.csv \
-XPUT http://<fe_ip>:<fe_http_port>/api/testdb/test_streamload/_stream_load

読み込み結果の例:

{
"TxnId": 3,
"Status": "Success",
"NumberTotalRows": 10,
"NumberLoadedRows": 10
}

ステップ 4: ロードされたデータの確認

mysql> SELECT COUNT(*) FROM testdb.test_streamload;
+----------+
| count(*) |
+----------+
| 10 |
+----------+

Streamloader Toolを使用したデータのロード

ステップ1: データの準備

上記と同じ内容でstreamloader_example.csvという名前のCSVファイルを作成します。

ステップ2: Tableの作成

上記と同じ構文を使用してDorisでTableを作成します。

ステップ3: データのロード

Streamloader toolを使用してデータをロードします:

doris-streamloader --source_file="streamloader_example.csv" --url="http://localhost:8330" --header="column_separator:," --db="testdb" --table="test_streamload"

読み込み結果の例:

Load Result: {
"Status": "Success",
"TotalRows": 10,
"LoadedRows": 10
}

ステップ 4: ロードされたデータの確認

mysql> SELECT COUNT(*) FROM testdb.test_streamload;
+----------+
| count(*) |
+----------+
| 10 |
+----------+

MySQL Load を使用したデータの読み込み

ステップ1: データの準備

以下のサンプルデータを含む client_local.csv という名前のファイルを作成します:

1,10
2,20
3,30
4,40
5,50
6,60

ステップ2: MySQL Clientに接続する

mysql --local-infile -h <fe_ip> -P <fe_query_port> -u root -D testdb

ステップ 3: データの読み込み

MySQL Load コマンドを実行します:

LOAD DATA LOCAL
INFILE 'client_local.csv'
INTO TABLE testdb.t1
COLUMNS TERMINATED BY ','
LINES TERMINATED BY '\n';

ステップ 4: 読み込まれたデータの確認

読み込みが成功した場合、結果は以下のように表示されます:

Query OK, 6 row affected (0.17 sec)
Records: 6 Deleted: 0 Skipped: 0 Warnings: 0