ClickHouse での Avro、Arrow、および ORC データの操作
Apache は、人気のある Avro、Arrow、および 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 サーバなしでローカルおよびリモートファイルを操作するためのポータブルでフル機能のツールです。