メインコンテンツまでスキップ
メインコンテンツまでスキップ

ClickHouseにおけるAvro、Arrow、およびORCデータの操作

Apacheは、人気のある AvroArrow、および Orc を含む分析環境で積極的に使用される複数のデータ形式をリリースしました。ClickHouseは、これらの形式を使用してデータのインポートとエクスポートをサポートしています。

Avro形式でのインポートとエクスポート

ClickHouseは、Hadoopシステムで広く使用されている Apache Avro データファイルの読み書きをサポートしています。

avroファイルからインポートするには、INSERTステートメントで Avro 形式を使用します:

ファイル() 関数を使用することで、実際にデータをインポートする前にAvroファイルを探索することもできます:

Avroファイルにエクスポートするには:

AvroとClickHouseデータ型

Avroファイルのインポートまたはエクスポート時には データ型マッチング を考慮してください。Avroファイルからデータを読み込む際には明示的な型キャストを使用して変換してください:

Kafka内のAvroメッセージ

KafkaメッセージがAvro形式を使用する場合、ClickHouseは AvroConfluent 形式と Kafka エンジンを使用してそのようなストリームを読み取ることができます:

Arrow形式での作業

もう一つの列指向形式は Apache Arrow で、ClickHouseではインポートおよびエクスポートをサポートしています。Arrowファイルからデータをインポートするには、Arrow 形式を使用します:

Arrowファイルへのエクスポートも同様に機能します:

また、データ型マッチング を確認して、手動で変換する必要があるかどうかを確認してください。

Arrowデータのストリーミング

ArrowStream 形式を使用してArrowストリーミング(メモリ内プロセッシングに使用される)で作業することができます。ClickHouseはArrowストリームの読み書きが可能です。

ClickHouseがどのようにArrowデータをストリーミングできるかを示すために、以下のpythonスクリプトに出力をパイプします(これはArrowストリーミング形式の入力ストリームを読み取り、結果をPandasテーブルとして出力します):

次に、ClickHouseからデータをストリーミングし、その出力をスクリプトにパイプします:

ClickHouseも同じArrowStream形式を使用してArrowストリームを読み取ることができます:

arrow-streamをArrowストリーミングデータの可能なソースとして使用しました。

ORCデータのインポートとエクスポート

Apache ORC 形式は、通常はHadoop向けに使用される列指向ストレージ形式です。ClickHouseは、ORC形式を使用して Orcデータのインポートとエクスポートをサポートしています:

また、エクスポートとインポートを調整するために、データ型マッチング追加設定を確認してください。

さらなる情報

ClickHouseは、さまざまなシナリオやプラットフォームをカバーするために、テキストとバイナリの多くの形式をサポートしています。以下の記事で、さらに多くの形式とそれらとの作業方法を探検してください:

また、clickhouse-localを確認してください。これは、ClickHouseサーバーを必要とせずにローカル/リモートファイルで作業するためのポータブルなフル機能ツールです。