如何在 Great_Expectations 中触发 Slack 通知作为验证操作
Posted
技术标签:
【中文标题】如何在 Great_Expectations 中触发 Slack 通知作为验证操作【英文标题】:How to trigger Slack notifications as a Validation Action in Great_Expectations 【发布时间】:2021-09-27 08:53:47 【问题描述】:我在 Apache Spark 中使用 Databricks 和 Synapse 在 Apache Spark 中有以下 Great_Expectation
ge_df.expect_column_values_to_be_between('load_id', min_value=1000, max_value=1049).
我已尝试向 Great_Expectation 添加松弛通知,如下所示:
ge_df.expect_column_values_to_be_between('load_id', min_value=1000, max_value=1049, slack_render = "text": (test information,['MY_SLACK_WEBHOOK'])
但是失败了
谁能告诉我哪里出错了?
我也尝试了以下方法,但对我来说有点太高级了:
if not validation_results["success"]:
num_evaluated = validation_results["statistics"]["evaluated_expectations"]
num_successful = validation_results["statistics"]["successful_expectations"]
validation_results_text = json.dumps(
[result.to_json_dict() for result in validation_results["results"]],
sort_keys=True,
indent=4,
)
slack_renderer =
"text": (
f"⚠️ Dataset has failed expecations\n"
f"*Successful Expectations*: `num_successful/num_evaluated`\n"
f"*Results*: ```\nvalidation_results_text\n```"
)
response = requests.post(
os.environ['SLACK_WEBHOOK'],
data=json.dumps(slack_renderer),
headers="Content-Type": "application/json",
)
输入 slack_webhook 时出现错误
KeyError: 'https://hooks.slack.com/services/T1L0WSW9F/B028H2KKPU3/56EZfTdU1oIprsrxxx'
Traceback (most recent call last):
File "/home/trusted-service-user/cluster-env/env/lib/python3.6/os.py", line 669, in __getitem__
raise KeyError(key) from None
KeyError: 'https://hooks.slack.com/services/T1L0WSW9F/B028H2KKPU3/56EZfTdU1oIprsrxxx'
我相信问题出在这里:
response = requests.post(
os.environ['https://hooks.slack.com/services/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'],
data=json.dumps(slack_renderer),
headers="Content-Type": "application/json",
)
非常感谢任何帮助。
【问题讨论】:
我尝试导入以下模块from great_expectations.checkpoint.actions.validate.slack_renderer
,但没有成功
【参考方案1】:
通过将 requests.post 更改为使其工作
response = requests.post(
webhook_url, data=json.dumps(slack_renderer),
headers='Content-Type': 'application/json',
)
【讨论】:
以上是关于如何在 Great_Expectations 中触发 Slack 通知作为验证操作的主要内容,如果未能解决你的问题,请参考以下文章
当选中父级时,如何在Kendo TreeView中触发子节点的onCheck事件
在 Windows 10 中触控笔未触发 InkCanvas 事件
如何在 Xamarin UI 测试中触发 Android LongClick