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

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 サーバなしでローカルおよびリモートファイルを操作するためのポータブルでフル機能のツールです。