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。

此条目有帮助吗?