Skip to content

Calcite フィルター関数

このフィルター関数は、入力プラグインから受け取った 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 $PAGES

Calcite Filter は Treasure コンソール から適用できません。Treasure CLI を介して使用する必要があります。

Treasure CLI で Calcite Filter を使用するには、以下を実行します。

  1. 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_time
td connector:issue config.yml \
--database vietdb \
--table test_cal --auto-create-table