【问题标题】:Is there a way to call the BingAds API inside an Airflow operator?有没有办法在 Airflow 运营商中调用 BingAds API?
【发布时间】:2021-11-27 18:09:00
【问题描述】:

我需要从 Airflow 下载我公司在 Bing Ads 上的营销活动。我已经看到 Python 中有一个 Bing Ads SDK,它可能是构建自定义运算符的一个很好的起点,该运算符将对 Bing Ads 进行 API 调用,并使用 s3 挂钩将生成的 csv 上传到 S3。我之前使用 Google Ads 客户端库将广告系列下载为 PythonOperator 中的 Python 对象列表,但这个库比 BingAds 更直观。

不幸的是,Airflow 中没有 BingAds 钩子,所以我必须完全依赖这个 Python 库并将其包装在 PythonOperator 中。过去是否有人构建了类似的解决方案,可以为我指明正确的方向?

最好的,

【问题讨论】:

  • 我使用 BashOperator 来执行包含 Python 中的 Bing Ads 库的 Python 脚本。正如您所说,这也可以在 PythonOperator 中完成。此外,我发现只使用 df.to_csv("s3://bucket/key.csv") 使用 pandas 和 s3fs 将 csv 上传到 s3 更方便
  • 我使用 df.to_csv() 写入文件缓冲区 (BytesIO()),然后使用 s3 挂钩上传 csv 文件。这听起来是一个很好的解决方案。你能和我分享你的Python脚本吗?我想看看如何将 API 调用的结果存储到 pandas df。 Bing Ads 库对我来说似乎并不直观。

标签: python airflow bing-ads-api


【解决方案1】:

我认为使用 PythonOperator 运行 python 代码是可以的——包括导入 Bing API——你只需要确保为调度程序和工作程序安装了包。无需为此构建自定义运算符。

您甚至可以使用任务流 API 很好地集成它https://airflow.apache.org/docs/apache-airflow/stable/tutorial_taskflow_api.html

Airlfow 旨在进行自定义扩展——因此完全可以编写 Python 代码。更多 - 如果您发现它适合您,您实际上可能会在添加所有“概括”后将其贡献回 Airflow - BingAdsProvider 会很好。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 2022-06-10
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
相关资源
最近更新 更多