PrestoToSlackOperator

Presto

Executes a single SQL statement in Presto and sends the results to Slack. The results of the query are rendered into the ‘slack_message’ parameter as a Pandas dataframe using a JINJA variable called ‘{{ results_df }}’. The ‘results_df’ variable name can be changed by specifying a different ‘results_df_name’ parameter. The Tabulate library is added to the JINJA environment as a filter to allow the dataframe to be rendered nicely. For example, set ‘slack_message’ to {{ results_df | tabulate(tablefmt=”pretty”, headers=”keys”) }} to send the results to Slack as an ascii rendered table.

View on GitHub

Last Updated: Aug. 2, 2022

Access Instructions

Install the Presto provider package into your Airflow environment.

Import the module into your DAG file and instantiate it with your desired params.

Parameters

sqlRequiredThe SQL statement to execute on Presto (templated)
slack_messageRequiredThe templated Slack message to send with the data returned from Presto. You can use the default JINJA variable {{ results_df }} to access the pandas dataframe containing the SQL results
presto_conn_iddestination presto connection
slack_conn_idThe connection id for Slack
results_df_nameThe name of the JINJA template’s dataframe variable, default is ‘results_df’
parametersThe parameters to pass to the SQL query
slack_tokenThe token to use to authenticate to Slack. If this is not provided, the ‘webhook_token’ attribute needs to be specified in the ‘Extra’ JSON field against the slack_conn_id
slack_channelThe channel to send message. Override default from Slack connection.

Documentation

Executes a single SQL statement in Presto and sends the results to Slack. The results of the query are rendered into the ‘slack_message’ parameter as a Pandas dataframe using a JINJA variable called ‘{{ results_df }}’. The ‘results_df’ variable name can be changed by specifying a different ‘results_df_name’ parameter. The Tabulate library is added to the JINJA environment as a filter to allow the dataframe to be rendered nicely. For example, set ‘slack_message’ to {{ results_df | tabulate(tablefmt=”pretty”, headers=”keys”) }} to send the results to Slack as an ascii rendered table.

See also

For more information on how to use this operator, take a look at the guide: prestotoslackoperator

Was this page helpful?