埋め込みモードでドリルを使用していますが、クエリの出力をコピーして貼り付ける以外に保存する方法がわかりません。
5 に答える
!record <file_path>
すべての出力を特定のファイルに保存
するように指定できます。ドリル ドキュメント
SQLLINE を使用している場合は、 !record を使用します。
一連のクエリを使用している場合は、使用する正確なスキーマを指定する必要があります。これは Use schema コマンドを使用して実行できます。残念ながら、ルート スキーマも使用しないでください。ファイル システムに正しいディレクトリを作成し、適切なストレージ構成も使用していることを確認してください。構成例を以下に示します。この後、 Java 経由で SQL ドライバーを使用してcsv を作成するか、Pentaho などのツールで CSV を生成できます。適切に指定すれば、localhost:8047/query でも REST クエリ ツールを使用できます。/out/data/csv で csv を生成するクエリは、構成例の後に下にあります。
ストレージ構成
{
"type": "file",
"enabled": true,
"connection": "file:///",
"config": null,
"workspaces": {
"root": {
"location": "/out",
"writable": false,
"defaultInputFormat": null
},
"jsonOut": {
"location": "/out/data/json",
"writable": true,
"defaultInputFormat": "json"
},
"csvOut": {
"location": "/out/data/csv",
"writable": true,
"defaultInputFormat": "csv"
}
},
"formats": {
"json": {
"type": "json",
"extensions": [
"json"
]
},
"csv": {
"type": "text",
"extensions": [
"csv"
],
"delimiter": ","
}
}
}
クエリ
USE fs.csvOut;
ALTER SESSION SET `store.format`='csv';
CREATE TABLE fs.csvOut.mycsv_out
AS SELECT * FROM fs.`my_records_in.json`;
これにより、少なくとも 1 つの CSV が生成され、場合によっては /out/data/csv/mycsv_out に異なるヘッダー仕様を持つ多数の CSV が生成されます。
各ファイルは次の形式に従う必要があります。
\d+_\d+_\d+.csv
注:クエリ結果は 1 つの CSV として読み取ることができますが、ヘッダーの数が異なるため、結果の CSV (複数ある場合) を読み取ることはできません。ファイルを Json ファイルとしてドロップし、コードで読み取るか、後でドリルまたは別のツールを使用して読み取ります。