このフィルター関数は、入力プラグインから受け取った Pages 内の行を SQL クエリで変換し、クエリ結果を変更された Pages として次のフィルターまたは出力プラグインに送信できます。これは Apache Calcite を使用しており、次世代の高性能データベースの基盤となり、カスタムアダプターによってカスタマイズされたストレージに SQL クエリを実行できるようにします。このプラグインは Page ストレージアダプターを Apache Calcite に適用し、提供される JDBC Driver を介して Pages に SQL クエリを実行できるようにします。
このフィルターは、処理前にデータを保存するためにメモリを使用します。メモリはホストマシン上の Embulk によって管理されます。
Treasure Data の基本知識。
TD Toolbelt の基本知識。
- このフィルタープラグインは、データ取り込み中に不要なレコードを削除するための柔軟なデータフィルターをサポートすることを目的としています。そのため、WHERE 句のみが十分にサポートされています。
- データの結合や外部サービスへのデータ挿入などの他のユースケースはサポートされていません。
このプラグインの Embulk 設定例を以下に示します:
filters:
- type: calcite
query: SELECT * FROM $PAGESCalcite Filter は Treasure コンソール から適用できません。Treasure CLI を介して使用する必要があります。
Treasure CLI で Calcite Filter を使用するには、以下を実行します。
- filters セクションを含む config.yml ファイルを作成します。S3 Input コネクタを使用した例を以下に示します:
in:
type: s3
access_key_id: sample_access_key_id
secret_access_key: sample_secret_access_key
bucket: viet-us-east-1
path_prefix: s3_basic.csv
parser:
type: csv
stop_on_invalid_record: false
allow_optional_columns: true
allow_extra_columns: true
columns:
- {name: path, type: string}
- {name: code, type: string}
- {name: method, type: string}
out:
mode: replace
exec: {}
filters:
- type: calcite
query: SELECT * FROM $PAGES WHERE "method" LIKE 'GET' and "path" like '%item%'
- type: add_time
to_column:
name: time
type: timestamp
from_value:
mode: upload_timetd connector:issue config.yml \
--database vietdb \
--table test_cal --auto-create-table