簡體   English   中英

Airflow 是否可以在 BigQuery 中管理 UDF 創建?

[英]Is it possible for Airflow to manage UDF creation in BigQuery?

我將 Airflow 用於各種 ETL 工作,但我也開始大量使用UDF

我想在數據集my_project.my_udfs中組織我的 UDF,我希望能夠為此目的利用 Airflow。 有辦法嗎?

我最終希望能夠像這樣安排查詢,簡單的例子:

CREATE FUNCTION `my_project.my_udfs.normalize`(s STRING)
  RETURNS STRING
  AS TRIM(LOWER(s));

您可能會想到的問題的幾個答案:

  1. 我是使用 Airflow 的更廣泛組織的一部分,我想在這里利用的主要好處是對這些功能進行源代碼控制。
  2. 該示例不是這種情況,但其中許多功能是會定期(每月/每季度)更新的功能。

提前致謝!

如果您將 UDF 存儲在 BigQuery 中,則可以使用 BigQuery 掛鈎並傳入一些基本的 SQL 來執行它。

BigQuery 掛鈎

from airflow.providers.google.cloud.hooks.bigquery import BigQueryHook

bq_hook = BigQueryHook(gcp_conn_id)
results = bq_hook.get_records('select * from my_table')

my_table替換為您的 UDF,它應該會為您返回一個結果集。

或者,如果您沒有持久性 UDF 或希望每次都傳遞一些內容,您可以將一些 SQL 存儲在 XML 文件中,該文件位於您的 Python 代碼旁邊,並在您想要執行它時從那里獲取它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM