airflow.providers.apache.drill.hooks.drill

模組內容

類別

DrillHook

透過 sqlalchemy-drill 與 Apache Drill 互動。

class airflow.providers.apache.drill.hooks.drill.DrillHook(*args, schema=None, log_sql=True, **kwargs)[原始碼]

基底類別: airflow.providers.common.sql.hooks.sql.DbApiHook

透過 sqlalchemy-drill 與 Apache Drill 互動。

您可以在連線的額外資訊欄位中指定 sqlalchemy-drill 將用於與 Drill 通訊的 SQLAlchemy 方言和驅動程式,例如 {"dialect_driver": "drill+sadrill"} 以透過 Drill 的 REST API 進行通訊。 有關支援的方言和驅動程式的描述,請參閱 sqlalchemy-drill 文件。

您可以使用額外資訊欄位指定 sqlalchemy-drill 連線的預設 storage_plugin,例如 {"storage_plugin": "dfs"}

conn_name_attr = 'drill_conn_id'[原始碼]
default_conn_name = 'drill_default'[原始碼]
conn_type = 'drill'[原始碼]
hook_name = 'Drill'[原始碼]
supports_autocommit = False[原始碼]
get_conn()[原始碼]

建立與 Drillbit 的連線。

get_uri()[原始碼]

傳回連線 URI。

例如: drill://127.0.0.1:8047/dfs

abstract set_autocommit(conn, autocommit)[原始碼]

在連線上設定自動提交旗標。

abstract insert_rows(table, rows, target_fields=None, commit_every=1000, replace=False, **kwargs)[原始碼]

將 tuple 集合插入表格。

資料列以區塊方式插入,每個區塊(大小為 commit_every)都在新的交易中完成。

參數
  • table (str) – 目標表格名稱

  • rows (collections.abc.Iterable[tuple[str]]) – 要插入表格的資料列

  • target_fields (collections.abc.Iterable[str] | None) – 要在表格中填入的欄位名稱

  • commit_every (int) – 在一個交易中插入的最大資料列數。 設定為 0 可在一個交易中插入所有資料列。

  • replace (bool) – 是否替換而非插入

  • executemany – 如果為 True,則所有資料列會以 commit_every 參數定義的區塊一次插入。 這僅在所有資料列都具有相同數量的欄位名稱時才有效,但可以帶來更好的效能。

  • fast_executemany – 如果為 True,則 fast_executemany 參數將設定在 executemany 使用的游標上,如果驅動程式支援,則可帶來更好的效能。

  • autocommit – 在執行查詢之前,要將連線的自動提交設定為何。

此條目是否有幫助?