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)[source]

繼承自: airflow.providers.common.sql.hooks.sql.DbApiHook

透過 sqlalchemy-drill 與 Apache Drill 互動。

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

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

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

建立與 Drillbit 的連線。

get_uri()[source]

返回連線 URI。

例如: drill://:8047/dfs

abstract set_autocommit(conn, autocommit)[source]

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

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

將一組元組插入到表中。

行以塊為單位插入,每個塊(大小為 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,用於 executemany 的遊標將設定 fast_executemany 引數,如果驅動程式支援,這將帶來更好的效能。

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

此條目是否有幫助?