airflow.providers.slack.transfers.sql_to_slack_webhook

SqlToSlackWebhookOperator

在給定的 SQL 連線中執行 SQL 語句,並將結果傳送到 Slack Incoming Webhook。

模組內容

class airflow.providers.slack.transfers.sql_to_slack_webhook.SqlToSlackWebhookOperator(*, sql, sql_conn_id, slack_webhook_conn_id=None, sql_hook_params=None, slack_channel=None, slack_message, results_df_name='results_df', parameters=None, **kwargs)[source]

基類: airflow.providers.slack.transfers.base_sql_to_slack.BaseSqlToSlackOperator

在給定的 SQL 連線中執行 SQL 語句,並將結果傳送到 Slack Incoming Webhook。

查詢結果使用名為 ‘{{ results_df }}’ 的 JINJA 變數作為 Pandas 資料幀渲染到 ‘slack_message’ 引數中。‘results_df’ 變數名可以透過指定不同的 ‘results_df_name’ 引數來更改。Tabulate 庫作為過濾器新增到 JINJA 環境中,以便資料幀能夠很好地渲染。例如,將 ‘slack_message’ 設定為 {{ results_df | tabulate(tablefmt=”pretty”, headers=”keys”) }} 可以將結果作為 ascii 渲染的表格傳送到 Slack。

另請參閱

有關如何使用此運算子的更多資訊,請參閱指南: SqlToSlackWebhookOperator

注意

您無法覆蓋預設頻道(由安裝您的應用程式的使用者選擇),相反,這些值將始終繼承自相關的 Slack App 配置(連結)。只有在 Legacy Slack Integration Incoming Webhook 中才可能更改這些值。

警告

此 Hook 旨在使用 Slack Incoming Webhook 連線,並且可能無法與 Slack API 連線正常工作。

引數::
  • sql (str) – 要執行的 SQL 查詢(模板化)

  • slack_message (str) – 要傳送的模板化的 Slack 訊息,包含從 SQL 連線返回的資料。您可以使用預設的 JINJA 變數 {{ results_df }} 訪問包含 SQL 結果的 pandas 資料幀

  • sql_conn_id (str) – 對特定資料庫的引用。

  • sql_hook_params (dict | None) – 要傳遞給底層 Hook 的額外配置引數。應與所需的 Hook 建構函式引數匹配。

  • slack_webhook_conn_id (str | None) – Slack Incoming Webhook 連線 ID,其密碼欄位中包含 Incoming Webhook token。

  • slack_channel (str | None) – 要傳送訊息的頻道。

  • results_df_name (str) – JINJA 模板的資料幀變數名稱,預設為 ‘results_df’

  • parameters (list | tuple | collections.abc.Mapping[str, Any] | None) – 要傳遞給 SQL 查詢的引數

template_fields: collections.abc.Sequence[str] = ('sql', 'slack_message')[source]
template_ext: collections.abc.Sequence[str] = ('.sql', '.jinja', '.j2')[source]
template_fields_renderers[source]
times_rendered = 0[source]
slack_webhook_conn_id : str | None = None[source]
slack_channel : str | None = None[source]
slack_message : str[source]
results_df_name : str = 'results_df'[source]
kwargs[source]
render_template_fields(context, jinja_env=None)[source]

模板化 self.template_fields 中列出的所有屬性。

這將原地修改屬性,且不可逆。

引數::
  • context – 上下文字典,包含要應用於內容的值。

  • jinja_env – 用於渲染的 Jinja 環境。

execute(context)[source]

建立運算子時派生。

Context 是與渲染 jinja 模板時使用的字典相同。

有關更多上下文,請參閱 get_template_context。

此條目有幫助嗎?