メインコンテンツまでスキップ
に最終更新

ORC | ファイル形式

このドキュメントでは、ORC 形式のデータファイルを Apache Doris にインポートする方法について、対応するインポート方法と代表的な使用例を説明します。

対応するインポート方法​

次の表に、Doris で ORC 形式に使用できるインポート方法と、それぞれに適したケースを示します。

インポート方法適したケースドキュメント
Stream Loadローカルマシンまたはクライアントから HTTP 経由で ORC ファイルを送信するStream Load
Broker Loadオブジェクトストレージまたは HDFS 上の ORC ファイルを非同期で一括インポートするBroker Load
INSERT INTO FROM S3 TVFテーブル値関数を使用して S3 上の ORC ファイルを読み取るS3 TVF
INSERT INTO FROM HDFS TVFテーブル値関数を使用して HDFS 上の ORC ファイルを読み取るHDFS TVF

使用例​

このセクションでは、インポート方法ごとに ORC 形式の代表的な使用例を示します。各例では、<user>、<fe_host>、bucket などのプレースホルダーを、実際の環境に合わせた値に置き換えてください。

Stream Load によるインポート​

ローカルの ORC ファイルを HTTP 経由で Doris に送信するには、この方法を使用します。

curl --location-trusted -u <user>:<passwd> \
-H "format: orc" \
-T example.orc \
http://<fe_host>:<fe_http_port>/api/example_db/example_table/_stream_load

ポイント:

  • リクエストヘッダー -H "format: orc" で、データ形式に ORC を指定します。
  • -T で、インポートするローカル ORC ファイルのパスを指定します。
  • URL には、インポート先のデータベースとテーブルを指定する必要があります。

Broker Load によるインポート​

オブジェクトストレージ(S3 など)または HDFS 上の ORC ファイルを一括インポートするには、この方法を使用します。

LOAD LABEL example_db.example_label
(
DATA INFILE("s3://bucket/example.orc")
INTO TABLE example_table
FORMAT AS "orc"
)
WITH S3
(
...
);

ポイント:

  • FORMAT AS "orc" で、データファイルの形式を明示的に指定します。
  • DATA INFILE に ORC ファイルの保存先パスを指定します。
  • WITH S3 (...) に、オブジェクトストレージのアクセス認証情報やその他の接続情報を指定します。

TVF によるインポート​

テーブル値関数(TVF)を使用してリモートの ORC ファイルを直接読み取り、結果をテーブルに書き込むには、この方法を使用します。

INSERT INTO example_table
SELECT *
FROM S3
(
"uri" = "s3://bucket/example.orc",
"format" = "orc",
...
);

ポイント:

  • TVF のパラメータに "format" = "orc" を指定して、データ形式を設定します。
  • "uri" で、オブジェクトストレージまたは HDFS 上の ORC ファイルのパスを指定します。
  • インポート先のテーブルに書き込む前に、SELECT 句で列のプルーニング、フィルタリング、変換の処理を追加できます。

FAQ​

Q1: ORC ファイルをインポートする際、format パラメータを明示的に指定する必要がありますか?

はい。Stream Load、Broker Load、TVF のいずれを使用する場合も、format を orc と明示的に指定する必要があります。指定しないと、データはデフォルトの形式(CSV など)で解析され、インポートに失敗します。

Q2: ORC ファイルのインポートでは、Stream Load、Broker Load、TVF をどのように使い分けますか?

  • データ量が少ないローカルファイルやクライアント側のファイルには、Stream Load を推奨します。
  • リモートのオブジェクトストレージや HDFS 上にある大量のファイルを一括でインポートする場合は、Broker Load を推奨します。
  • インポート時に列のプルーニング、フィルタリング、変換を行う必要がある場合は、TVF(INSERT INTO ... SELECT FROM S3/HDFS)を推奨します。

Q3: 使用例の ... は何を意味しますか?

使用例の ... はプレースホルダーです。環境に必要な接続パラメータ(S3 の AK/SK、endpoint、region など)や、その他のオプションパラメータに置き換えてください。パラメータの全一覧については、各インポート方法の公式ドキュメントを参照してください。