airflow.providers.google.cloud.operators.bigquery
¶
此模組包含 Google BigQuery 運算子。
模組內容¶
類別¶
BigQuery 運算子的十六進位顏色。 |
|
當資源存在時要採取的動作。 |
|
針對 BigQuery 執行檢查。 |
|
使用 SQL 程式碼執行簡單的值檢查。 |
|
檢查以 SQL 表達式給出的指標值是否在舊值的容差範圍內。 |
|
子類別 SQLColumnCheckOperator,以便為 OpenLineage 提供任務 ID 以進行解析。 |
|
子類別 SQLTableCheckOperator,以便為 OpenLineage 提供任務 ID 以進行解析。 |
|
提取資料並傳回,可以從 BigQuery 表格或查詢任務結果中提取。 |
|
在指定的 BigQuery 資料集中建立新表格,可選擇包含結構描述。 |
|
使用來自 Google Cloud Storage 的資料建立新的外部表格。 |
|
從 BigQuery 中的專案刪除現有的資料集。 |
|
在 BigQuery 中為您的專案建立新的資料集。 |
|
取得由 ID 指定的資料集。 |
|
檢索指定資料集中的表格列表。 |
|
更新 BigQuery 中專案的表格。 |
|
更新 BigQuery 中專案的資料集。 |
|
刪除 BigQuery 表格。 |
|
Upsert 到 BigQuery 表格。 |
|
更新 BigQuery 表格結構描述。 |
|
執行 BigQuery 任務。 |
屬性¶
- airflow.providers.google.cloud.operators.bigquery.BIGQUERY_JOB_DETAILS_LINK_FMT = 'https://console.cloud.google.com/bigquery?j={job_id}'[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryUIColors[source]¶
基底類別:
enum.Enum
BigQuery 運算子的十六進位顏色。
- class airflow.providers.google.cloud.operators.bigquery.IfExistAction[source]¶
基底類別:
enum.Enum
當資源存在時要採取的動作。
- class airflow.providers.google.cloud.operators.bigquery.BigQueryCheckOperator(*, sql, gcp_conn_id='google_cloud_default', use_legacy_sql=True, location=None, impersonation_chain=None, labels=None, encryption_configuration=None, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), poll_interval=4.0, query_params=None, **kwargs)[source]¶
基底類別:
_BigQueryDbHookMixin
,airflow.providers.common.sql.operators.sql.SQLCheckOperator
,_BigQueryOperatorsEncryptionConfigurationMixin
針對 BigQuery 執行檢查。
此運算子預期一個 SQL 查詢,該查詢傳回單一列。該列上的每個值都使用 Python
bool
轉換進行評估。如果任何值為假,則檢查會出錯。參見
有關如何使用此運算子的更多資訊,請查看指南: 檢查查詢結果是否有資料
請注意,Python 布林轉換將以下內容評估為False
False
0
空字串 (
""
)空列表 (
[]
)空字典或集合 (
{}
)
給定像
SELECT COUNT(*) FROM foo
這樣的查詢,只有當計數等於零時才會失敗。您可以製作更複雜的查詢,例如,檢查表格的列數是否與上游來源表格相同,或者今天分割區的計數是否大於昨天的分割區,或者一組指標是否小於 7 天平均值的三個標準差。此運算子可以用作管道中的資料品質檢查。根據您將其放置在 DAG 中的位置,您可以選擇停止關鍵路徑,防止發布可疑資料,或放在旁邊並接收電子郵件警報,而不會停止 DAG 的進度。
- 參數
sql (str) – 要執行的 SQL。
gcp_conn_id (str) – Google Cloud 的連線 ID。
use_legacy_sql (bool) – 是否使用舊版 SQL (true) 或標準 SQL (false)。
location (str | None) – 任務的地理位置。請參閱詳細資訊: https://cloud.google.com/bigquery/docs/locations#specifying_your_location
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的存取權杖所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶。(已範本化)
labels (dict | None) – 包含表格標籤的字典,傳遞給 BigQuery。
encryption_configuration (dict | None) –
(可選) 自訂加密設定 (例如,Cloud KMS 金鑰)。
encryption_configuration = { "kmsKeyName": "projects/PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY", }
deferrable (bool) – 在可延遲模式下執行運算子。
poll_interval (float) – (僅限可延遲模式) 輪詢間隔(秒),用於檢查任務的狀態。
query_params (list | None) – 包含查詢參數類型和值的字典列表,傳遞給 BigQuery。字典的結構應類似於 Google BigQuery Jobs API 中的 ‘queryParameters’: https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs。例如,[{ ‘name’: ‘corpus’, ‘parameterType’: { ‘type’: ‘STRING’ }, ‘parameterValue’: { ‘value’: ‘romeoandjuliet’ } }]。(已範本化)
- template_fields: collections.abc.Sequence[str] = ('sql', 'gcp_conn_id', 'impersonation_chain', 'labels', 'query_params')[source]¶
- template_ext: collections.abc.Sequence[str] = ('.sql',)[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryValueCheckOperator(*, sql, pass_value, tolerance=None, encryption_configuration=None, gcp_conn_id='google_cloud_default', use_legacy_sql=True, location=None, impersonation_chain=None, labels=None, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), poll_interval=4.0, **kwargs)[source]¶
基底類別:
_BigQueryDbHookMixin
,airflow.providers.common.sql.operators.sql.SQLValueCheckOperator
,_BigQueryOperatorsEncryptionConfigurationMixin
使用 SQL 程式碼執行簡單的值檢查。
參見
有關如何使用此運算子的更多資訊,請查看指南: 比較查詢結果與通過值
- 參數
sql (str) – 要執行的 SQL。
use_legacy_sql (bool) – 是否使用舊版 SQL (true) 或標準 SQL (false)。
encryption_configuration (dict | None) –
(可選) 自訂加密設定 (例如,Cloud KMS 金鑰)。
encryption_configuration = { "kmsKeyName": "projects/PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY", }
gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
location (str | None) – 任務的地理位置。請參閱詳細資訊: https://cloud.google.com/bigquery/docs/locations#specifying_your_location
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的存取權杖所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶。(已範本化)
labels (dict | None) – 包含表格標籤的字典,傳遞給 BigQuery。
deferrable (bool) – 在可延遲模式下執行運算子。
poll_interval (float) – (僅限可延遲模式) 輪詢間隔(秒),用於檢查任務的狀態。
- template_fields: collections.abc.Sequence[str] = ('sql', 'gcp_conn_id', 'pass_value', 'impersonation_chain', 'labels')[source]¶
- template_ext: collections.abc.Sequence[str] = ('.sql',)[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryIntervalCheckOperator(*, table, metrics_thresholds, date_filter_column='ds', days_back=-7, gcp_conn_id='google_cloud_default', use_legacy_sql=True, location=None, encryption_configuration=None, impersonation_chain=None, labels=None, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), poll_interval=4.0, project_id=PROVIDE_PROJECT_ID, **kwargs)[source]¶
基底類別:
_BigQueryDbHookMixin
,airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator
,_BigQueryOperatorsEncryptionConfigurationMixin
檢查以 SQL 表達式給出的指標值是否在舊值的容差範圍內。
此方法建構如下查詢
SELECT {metrics_threshold_dict_key} FROM {table} WHERE {date_filter_column}=<date>
參見
有關如何使用此運算子的更多資訊,請查看指南: 比較一段時間內的指標
- 參數
table (str) – 表格名稱
days_back (SupportsAbs[int]) – ds 與我們要檢查的 ds 之間的天數。預設為 7 天
metrics_thresholds (dict) – 由指標索引的比率字典,例如 ‘COUNT(*)’: 1.5 將要求當前天與先前 days_back 之間的差異小於或等於 50%。
use_legacy_sql (bool) – 是否使用舊版 SQL (true) 或標準 SQL (false)。
encryption_configuration (dict | None) –
(可選) 自訂加密設定 (例如,Cloud KMS 金鑰)。
encryption_configuration = { "kmsKeyName": "projects/PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY", }
gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
location (str | None) – 任務的地理位置。請參閱詳細資訊: https://cloud.google.com/bigquery/docs/locations#specifying_your_location
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
labels (dict | None) – 包含表格標籤的字典,傳遞給 BigQuery
deferrable (bool) – 在可延遲模式下執行運算子
poll_interval (float) – (僅限可延遲模式) 輪詢週期,單位為秒,用於檢查任務狀態。預設值為 4 秒。
project_id (str) – 代表 BigQuery projectId 的字串
- template_fields: collections.abc.Sequence[str] = ('table', 'gcp_conn_id', 'sql1', 'sql2', 'impersonation_chain', 'labels')[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryColumnCheckOperator(*, table, column_mapping, partition_clause=None, database=None, accept_none=True, encryption_configuration=None, gcp_conn_id='google_cloud_default', use_legacy_sql=True, location=None, impersonation_chain=None, labels=None, **kwargs)[source]¶
繼承自:
_BigQueryDbHookMixin
,airflow.providers.common.sql.operators.sql.SQLColumnCheckOperator
,_BigQueryOperatorsEncryptionConfigurationMixin
子類別 SQLColumnCheckOperator,以便為 OpenLineage 提供任務 ID 以進行解析。
請參閱基礎類別的文件字串以了解用法。
參見
如需更多關於如何使用此運算子的資訊,請參閱指南:使用預定義測試檢查欄位
- 參數
table (str) – 表格名稱
column_mapping (dict) – 一個字典,將欄位與其檢查項目關聯起來
partition_clause (str | None) – 一個字串 SQL 陳述式,會加入 WHERE 子句以分割資料
gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
encryption_configuration (dict | None) –
(可選) 自訂加密設定 (例如,Cloud KMS 金鑰)。
encryption_configuration = { "kmsKeyName": "projects/PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY", }
use_legacy_sql (bool) – 是否使用舊版 SQL (true) 或標準 SQL (false)。
location (str | None) – 任務的地理位置。請參閱詳細資訊: https://cloud.google.com/bigquery/docs/locations#specifying_your_location
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
labels (dict | None) – 包含表格標籤的字典,傳遞給 BigQuery
- template_fields: collections.abc.Sequence[str][source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryTableCheckOperator(*, table, checks, partition_clause=None, gcp_conn_id='google_cloud_default', use_legacy_sql=True, location=None, impersonation_chain=None, labels=None, encryption_configuration=None, **kwargs)[source]¶
繼承自:
_BigQueryDbHookMixin
,airflow.providers.common.sql.operators.sql.SQLTableCheckOperator
,_BigQueryOperatorsEncryptionConfigurationMixin
子類別 SQLTableCheckOperator,以便為 OpenLineage 提供任務 ID 以進行解析。
請參閱基礎類別以了解用法。
參見
如需更多關於如何使用此運算子的資訊,請參閱指南:檢查表格層級資料品質
- 參數
table (str) – 表格名稱
checks (dict) – 包含檢查名稱和布林值 SQL 陳述式的字典
partition_clause (str | None) – 一個字串 SQL 陳述式,會加入 WHERE 子句以分割資料
gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
use_legacy_sql (bool) – 是否使用舊版 SQL (true) 或標準 SQL (false)。
location (str | None) – 任務的地理位置。請參閱詳細資訊: https://cloud.google.com/bigquery/docs/locations#specifying_your_location
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
labels (dict | None) – 包含表格標籤的字典,傳遞給 BigQuery
encryption_configuration (dict | None) –
(可選) 自訂加密設定 (例如,Cloud KMS 金鑰)。
encryption_configuration = { "kmsKeyName": "projects/PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY", }
- template_fields: collections.abc.Sequence[str][source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryGetDataOperator(*, dataset_id=None, table_id=None, table_project_id=None, job_id=None, job_project_id=None, project_id=PROVIDE_PROJECT_ID, max_results=100, selected_fields=None, gcp_conn_id='google_cloud_default', location=None, encryption_configuration=None, impersonation_chain=None, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), poll_interval=4.0, as_dict=False, use_legacy_sql=True, **kwargs)[source]¶
繼承自:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
,_BigQueryOperatorsEncryptionConfigurationMixin
提取資料並傳回,可以從 BigQuery 表格或查詢任務結果中提取。
資料可以透過特定欄位縮小範圍,或以整體方式擷取。它會以下列兩種格式之一傳回,具體取決於 “as_dict” 值:1. False (預設) - Python 列表的列表,其中巢狀列表的數量等於擷取的列數。每個巢狀列表代表一列,其中的元素對應於該特定列的欄位值。
範例結果:
[['Tony', 10], ['Mike', 20]
2. True - Python 字典的列表,其中每個字典代表一列。在每個字典中,鍵是欄位名稱,值是這些欄位的對應值。
範例結果:
[{'name': 'Tony', 'age': 10}, {'name': 'Mike', 'age': 20}]
參見
如需更多關於如何使用此運算子的資訊,請參閱指南:從表格擷取資料
注意
如果您將欄位傳遞給
selected_fields
,其順序與 BQ 表格/任務中已有的欄位順序不同,則資料仍將按照 BQ 表格的順序排列。例如,如果 BQ 表格有 3 個欄位,分別為[A,B,C]
,而您在selected_fields
中傳遞 ‘B,A’,則資料仍將為'A,B'
的形式。注意
當使用非可延遲模式的任務 ID 時,任務應處於 DONE 狀態。
範例 - 使用表格從 BigQuery 擷取資料:
get_data = BigQueryGetDataOperator( task_id="get_data_from_bq", dataset_id="test_dataset", table_id="Transaction_partitions", table_project_id="internal-gcp-project", max_results=100, selected_fields="DATE", gcp_conn_id="airflow-conn-id", )
範例 - 使用任務 ID 從 BigQuery 擷取資料:
get_data = BigQueryGetDataOperator( job_id="airflow_8999918812727394_86a1cecc69c5e3028d28247affd7563", job_project_id="internal-gcp-project", max_results=100, selected_fields="DATE", gcp_conn_id="airflow-conn-id", )
- 參數
dataset_id (str | None) – 請求表格的資料集 ID。(已套用範本)
table_id (str | None) – 請求表格的表格 ID。與 job_id 互斥。(已套用範本)
table_project_id (str | None) – (選填) 請求表格的專案 ID。如果為 None,則將從 Hook 的專案 ID 衍生。(已套用範本)
job_id (str | None) – 從中擷取查詢結果的任務 ID。與 table_id 互斥。(已套用範本)
job_project_id (str | None) – (選填) 執行任務的 Google Cloud 專案。如果為 None,則將從 Hook 的專案 ID 衍生。(已套用範本)
project_id (str) – (已棄用) (選填) 將從中傳回資料的專案名稱。如果為 None,則將從 Hook 的專案 ID 衍生。(已套用範本)
max_results (int) – 要從表格中擷取的最大記錄 (列) 數。(已套用範本)
selected_fields (str | None) – 要傳回的欄位列表 (逗號分隔)。如果未指定,則傳回所有欄位。
encryption_configuration (dict | None) –
(可選) 自訂加密設定 (例如,Cloud KMS 金鑰)。
encryption_configuration = { "kmsKeyName": "projects/PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY", }
gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
location (str | None) – 用於操作的位置。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
deferrable (bool) – 在可延遲模式下執行運算子
poll_interval (float) – (僅限可延遲模式) 輪詢週期,單位為秒,用於檢查任務狀態。預設值為 4 秒。
as_dict (bool) – 如果為 True,則以字典列表形式傳回結果,否則以列表的列表形式傳回 (預設值:False)。
use_legacy_sql (bool) – 是否使用舊版 SQL (true) 或標準 SQL (false)。
- template_fields: collections.abc.Sequence[str] = ('dataset_id', 'table_id', 'table_project_id', 'job_id', 'job_project_id', 'project_id',...[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryCreateEmptyTableOperator(*, dataset_id, table_id, table_resource=None, project_id=PROVIDE_PROJECT_ID, schema_fields=None, gcs_schema_object=None, time_partitioning=None, gcp_conn_id='google_cloud_default', google_cloud_storage_conn_id='google_cloud_default', labels=None, view=None, materialized_view=None, encryption_configuration=None, location=None, cluster_fields=None, impersonation_chain=None, if_exists='log', bigquery_conn_id=None, exists_ok=None, **kwargs)[source]¶
繼承自:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
在指定的 BigQuery 資料集中建立新表格,可選擇包含結構描述。
用於 BigQuery 表格的綱要可以使用兩種方式之一指定。您可以直接傳入綱要欄位,也可以將運算子指向 Google Cloud Storage 物件名稱。Google Cloud Storage 中的物件必須是包含綱要欄位的 JSON 檔案。您也可以建立沒有綱要的表格。
參見
如需更多關於如何使用此運算子的資訊,請參閱指南:建立原生表格
- 參數
project_id (str) – 要在其中建立表格的專案。(已套用範本)
dataset_id (str) – 要在其中建立表格的資料集。(已套用範本)
table_id (str) – 要建立的表格名稱。(已套用範本)
table_resource (dict[str, Any] | None) – 表格資源,如文件中所述:https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#Table。如果提供此參數,則所有其他參數都會被忽略。(已套用範本)
schema_fields (list | None) –
如果設定,則為綱要欄位列表,如此處定義:https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs#configuration.load.schema
範例:
schema_fields = [ {"name": "emp_name", "type": "STRING", "mode": "REQUIRED"}, {"name": "salary", "type": "INTEGER", "mode": "NULLABLE"}, ]
gcs_schema_object (str | None) – 包含綱要的 JSON 檔案完整路徑 (已套用範本)。例如:
gs://test-bucket/dir1/dir2/employee_schema.json
time_partitioning (dict | None) –
設定選填的時間分割欄位,即根據 API 規格依欄位、類型和到期日進行分割。
gcp_conn_id (str) – (選填) 用於連線至 Google Cloud 並與 Bigquery 服務互動的連線 ID。
google_cloud_storage_conn_id (str) – (選填) 用於連線至 Google Cloud 並與 Google Cloud Storage 服務互動的連線 ID。
labels (dict | None) – 包含表格標籤的字典,傳遞給 BigQuery
範例 (使用 GCS 中的綱要 JSON):
CreateTable = BigQueryCreateEmptyTableOperator( task_id="BigQueryCreateEmptyTableOperator_task", dataset_id="ODS", table_id="Employees", project_id="internal-gcp-project", gcs_schema_object="gs://schema-bucket/employee_schema.json", gcp_conn_id="airflow-conn-id", google_cloud_storage_conn_id="airflow-conn-id", )
對應的綱要檔案 (
employee_schema.json
)[ {"mode": "NULLABLE", "name": "emp_name", "type": "STRING"}, {"mode": "REQUIRED", "name": "salary", "type": "INTEGER"}, ]
範例 (在 DAG 中使用綱要):
CreateTable = BigQueryCreateEmptyTableOperator( task_id="BigQueryCreateEmptyTableOperator_task", dataset_id="ODS", table_id="Employees", project_id="internal-gcp-project", schema_fields=[ {"name": "emp_name", "type": "STRING", "mode": "REQUIRED"}, {"name": "salary", "type": "INTEGER", "mode": "NULLABLE"}, ], gcp_conn_id="airflow-conn-id-account", google_cloud_storage_conn_id="airflow-conn-id", )
- 參數
view (dict | None) –
(選填) 包含檢視定義的字典。如果設定,它將建立檢視而非表格
materialized_view (dict | None) – (選填) 具體化檢視定義。
encryption_configuration (dict | None) –
(可選) 自訂加密設定 (例如,Cloud KMS 金鑰)。
encryption_configuration = { "kmsKeyName": "projects/PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY", }
location (str | None) – 用於操作的位置。
cluster_fields (list[str] | None) –
(選填) 用於叢集處理的欄位。BigQuery 支援分割表格和非分割表格的叢集處理。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
if_exists (str) – 如果表格已存在,Airflow 應執行什麼操作。如果設定為 log,TI 將傳遞至成功,並記錄錯誤訊息。設定為 ignore 以忽略錯誤,設定為 fail 以使 TI 失敗,以及設定為 skip 以跳過它。
exists_ok (bool | None) – 已棄用 - 請改用 if_exists=”ignore”。
- template_fields: collections.abc.Sequence[str] = ('dataset_id', 'table_id', 'table_resource', 'project_id', 'gcs_schema_object', 'labels',...[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryCreateExternalTableOperator(*, bucket=None, source_objects=None, destination_project_dataset_table=None, table_resource=None, schema_fields=None, schema_object=None, gcs_schema_bucket=None, source_format=None, autodetect=False, compression=None, skip_leading_rows=None, field_delimiter=None, max_bad_records=0, quote_character=None, allow_quoted_newlines=False, allow_jagged_rows=False, gcp_conn_id='google_cloud_default', google_cloud_storage_conn_id='google_cloud_default', src_fmt_configs=None, labels=None, encryption_configuration=None, location=None, impersonation_chain=None, bigquery_conn_id=None, **kwargs)[source]¶
繼承自:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
使用來自 Google Cloud Storage 的資料建立新的外部表格。
BigQuery 表格所使用的結構描述可以透過兩種方式指定。您可以直接傳入結構描述欄位,或者您可以將運算子指向 Google Cloud Storage 物件名稱。Google Cloud Storage 中的物件必須是包含結構描述欄位的 JSON 檔案。
參見
如需更多關於如何使用此運算子的資訊,請參閱指南: 建立外部表格
- 參數
bucket (str | None) – 外部表格指向的儲存桶。(已套用範本)
source_objects (list[str] | None) – 要指向表格的 Google Cloud Storage URI 清單。如果 source_format 為 ‘DATASTORE_BACKUP’,則清單必須僅包含單個 URI。
destination_project_dataset_table (str | None) – 要載入資料的點狀
(<project>.)<dataset>.<table>
BigQuery 表格(已套用範本)。如果未包含<project>
,專案將會是連線 json 中定義的專案。schema_fields (list | None) –
如果設定,則為綱要欄位列表,如此處定義:https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs#configuration.load.schema
範例:
schema_fields = [ {"name": "emp_name", "type": "STRING", "mode": "REQUIRED"}, {"name": "salary", "type": "INTEGER", "mode": "NULLABLE"}, ]
當 source_format 為 ‘DATASTORE_BACKUP’ 時不應設定。
table_resource (dict[str, Any] | None) – 表格資源,如文件中所述: https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#Table 如果提供,則所有其他參數都會被忽略。將會解析來自物件的外部結構描述。
schema_object (str | None) – 如果設定,則為指向 .json 檔案的 GCS 物件路徑,其中包含表格的結構描述。(已套用範本)
gcs_schema_bucket (str | None) – 儲存結構描述 JSON 的 GCS 儲存桶名稱(已套用範本)。預設值為 self.bucket。
source_format (str | None) – 資料的檔案格式。
autodetect (bool) – 嘗試自動偵測結構描述和格式選項。當明確指定時,將會採用 schema_fields 和 schema_object 選項。 https://cloud.google.com/bigquery/docs/schema-detect#schema_auto-detection_for_external_data_sources
compression (str | None) – (選用)資料來源的壓縮類型。可能的值包括 GZIP 和 NONE。預設值為 NONE。此設定會被 Google Cloud Bigtable、Google Cloud Datastore 備份和 Avro 格式忽略。
skip_leading_rows (int | None) – 從 CSV 載入時要跳過的列數。
field_delimiter (str | None) – 用於 CSV 的分隔符號。
max_bad_records (int) – BigQuery 在執行作業時可以忽略的最大錯誤記錄數。
quote_character (str | None) – 用於在 CSV 檔案中引用資料區段的值。
allow_quoted_newlines (bool) – 是否允許引用的換行符號(true)或不允許(false)。
allow_jagged_rows (bool) – 接受缺少尾隨選用欄位的列。遺失的值會被視為 null。如果為 false,則缺少尾隨欄位的記錄會被視為錯誤記錄,並且如果錯誤記錄太多,則會在作業結果中傳回無效錯誤。僅適用於 CSV,對於其他格式則忽略。
gcp_conn_id (str) – (選填) 用於連線至 Google Cloud 並與 Bigquery 服務互動的連線 ID。
google_cloud_storage_conn_id (str) – (選用)用於連線至 Google Cloud 並與 Google Cloud Storage 服務互動的連線 ID。
src_fmt_configs (dict | None) – 設定特定於來源格式的選用欄位
labels (dict | None) – 包含表格標籤的字典,傳遞給 BigQuery
encryption_configuration (dict | None) –
(可選) 自訂加密設定 (例如,Cloud KMS 金鑰)。
encryption_configuration = { "kmsKeyName": "projects/PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY", }
location (str | None) – 用於操作的位置。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
- template_fields: collections.abc.Sequence[str] = ('bucket', 'source_objects', 'schema_object', 'gcs_schema_bucket',...[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryDeleteDatasetOperator(*, dataset_id, project_id=PROVIDE_PROJECT_ID, delete_contents=False, gcp_conn_id='google_cloud_default', impersonation_chain=None, **kwargs)[source]¶
繼承自:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
從 BigQuery 中的專案刪除現有的資料集。
https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets/delete
參見
如需更多關於如何使用此運算子的資訊,請參閱指南: 刪除資料集
- 參數
project_id (str) – 資料集的專案 ID。
dataset_id (str) – 要刪除的資料集。
delete_contents (bool) – (選用)即使資料集不是空的,是否強制刪除。如果設定為 True,將會刪除資料集中的所有表格(如果有的話)。如果設定為 False 且資料集不是空的,則會引發 HttpError 400:「{dataset_id} 仍在使用中」。預設值為 False。
gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
範例:
delete_temp_data = BigQueryDeleteDatasetOperator( dataset_id="temp-dataset", project_id="temp-project", delete_contents=True, # Force the deletion of the dataset as well as its tables (if any). gcp_conn_id="_my_gcp_conn_", task_id="Deletetemp", dag=dag, )
- template_fields: collections.abc.Sequence[str] = ('dataset_id', 'project_id', 'impersonation_chain')[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryCreateEmptyDatasetOperator(*, dataset_id=None, project_id=PROVIDE_PROJECT_ID, dataset_reference=None, location=None, gcp_conn_id='google_cloud_default', impersonation_chain=None, if_exists='log', exists_ok=None, **kwargs)[source]¶
繼承自:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
在 BigQuery 中為您的專案建立新的資料集。
https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#resource
參見
如需更多關於如何使用此運算子的資訊,請參閱指南: 建立資料集
- 參數
project_id (str) – 我們要在其中建立資料集的專案名稱。
dataset_id (str | None) – 資料集的 ID。如果 dataset_reference 中有 datasetId,則不需要提供。
location (str | None) – 資料集應駐留的地理位置。
dataset_reference (dict | None) – 可以與請求內文一起提供的資料集參考。更多資訊: https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#resource
gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
if_exists (str) –
如果資料集存在,Airflow 應該怎麼做。如果設定為 log,則 TI 將傳遞到成功狀態,並記錄錯誤訊息。設定為 ignore 以忽略錯誤,設定為 fail 以使 TI 失敗,並設定為 skip 以跳過它。範例
create_new_dataset = BigQueryCreateEmptyDatasetOperator( dataset_id='new-dataset', project_id='my-project', dataset_reference={"friendlyName": "New Dataset"} gcp_conn_id='_my_gcp_conn_', task_id='newDatasetCreator', dag=dag)
exists_ok (bool | None) – 已棄用 - 請改用 if_exists=”ignore”。
- template_fields: collections.abc.Sequence[str] = ('dataset_id', 'project_id', 'dataset_reference', 'impersonation_chain')[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryGetDatasetOperator(*, dataset_id, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', impersonation_chain=None, **kwargs)[source]¶
繼承自:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
取得由 ID 指定的資料集。
參見
如需更多關於如何使用此運算子的資訊,請參閱指南: 取得資料集詳細資訊
- 參數
dataset_id (str) – 資料集的 ID。如果 dataset_reference 中有 datasetId,則不需要提供。
project_id (str) – 我們要在其中建立資料集的專案名稱。如果 dataset_reference 中有 projectId,則不需要提供。
gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
- template_fields: collections.abc.Sequence[str] = ('dataset_id', 'project_id', 'impersonation_chain')[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryGetDatasetTablesOperator(*, dataset_id, project_id=PROVIDE_PROJECT_ID, max_results=None, gcp_conn_id='google_cloud_default', impersonation_chain=None, **kwargs)[source]¶
繼承自:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
檢索指定資料集中的表格列表。
參見
如需更多關於如何使用此運算子的資訊,請參閱指南: 列出資料集中的表格
- 參數
dataset_id (str) – 請求資料集的資料集 ID。
project_id (str) – (選用)請求資料集的專案。如果為 None,將會使用 self.project_id。
max_results (int | None) – (選用)要傳回的最大表格數。
gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
- template_fields: collections.abc.Sequence[str] = ('dataset_id', 'project_id', 'impersonation_chain')[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryUpdateTableOperator(*, table_resource, fields=None, dataset_id=None, table_id=None, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', impersonation_chain=None, **kwargs)[source]¶
繼承自:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
更新 BigQuery 中專案的表格。
使用
fields
指定要更新的表格欄位。如果欄位在fields
中列出,並且在表格中為None
,則會將其刪除。參見
如需更多關於如何使用此運算子的資訊,請參閱指南: 更新表格
- 參數
dataset_id (str | None) – 資料集的 ID。如果 table_reference 中有 datasetId,則不需要提供。
table_id (str | None) – 資料表的 ID。如果
table_reference
中有 tableId,則無需提供。table_resource (dict[str, Any]) – 將與請求 body 一起提供的資料集資源。https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#resource
fields (list[str] | None) – 要變更的
table
欄位,以 Table 屬性 (例如 “friendly_name”) 拼寫。project_id (str) – 我們要在其中建立資料表的專案名稱。如果
table_reference
中有 projectId,則無需提供。gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
- template_fields: collections.abc.Sequence[str] = ('dataset_id', 'table_id', 'project_id', 'impersonation_chain')[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryUpdateDatasetOperator(*, dataset_resource, fields=None, dataset_id=None, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', impersonation_chain=None, **kwargs)[source]¶
繼承自:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
更新 BigQuery 中專案的資料集。
使用
fields
指定要更新的資料集欄位。如果fields
中列出了某個欄位,且該欄位在資料集中為None
,則會將其刪除。如果未提供fields
,則將使用提供的dataset_resource
的所有欄位。參見
如需更多關於如何使用此運算子的資訊,請參閱指南:更新資料集
- 參數
dataset_id (str | None) – 資料集的 ID。如果 dataset_reference 中有 datasetId,則不需要提供。
dataset_resource (dict[str, Any]) – 將與請求 body 一起提供的資料集資源。https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#resource
project_id (str) – 我們要在其中建立資料集的專案名稱。如果 dataset_reference 中有 projectId,則不需要提供。
gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
- template_fields: collections.abc.Sequence[str] = ('dataset_id', 'project_id', 'impersonation_chain')[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryDeleteTableOperator(*, deletion_dataset_table, gcp_conn_id='google_cloud_default', ignore_if_missing=False, location=None, impersonation_chain=None, **kwargs)[source]¶
繼承自:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
刪除 BigQuery 表格。
參見
如需更多關於如何使用此運算子的資訊,請參閱指南:刪除資料表
- 參數
deletion_dataset_table (str) – 點狀表示法
(<project>.|<project>:)<dataset>.<table>
,指示要刪除的資料表。(可使用範本)gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
ignore_if_missing (bool) – 如果為 True,即使請求的資料表不存在,仍會傳回成功。
location (str | None) – 用於操作的位置。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
- template_fields: collections.abc.Sequence[str] = ('deletion_dataset_table', 'impersonation_chain')[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryUpsertTableOperator(*, dataset_id, table_resource, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', location=None, impersonation_chain=None, **kwargs)[source]¶
繼承自:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
Upsert 到 BigQuery 表格。
參見
如需更多關於如何使用此運算子的資訊,請參閱指南:Upsert table
- 參數
dataset_id (str) – 點狀表示法
(<project>.|<project>:)<dataset>
,指示要更新的資料集。(可使用範本)table_resource (dict) – 資料表資源。請參閱 https://cloud.google.com/bigquery/docs/reference/v2/tables#resource
project_id (str) – 我們要在其中更新資料集的專案名稱。如果
dataset_reference
中有 projectId,則無需提供。gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
location (str | None) – 用於操作的位置。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
- template_fields: collections.abc.Sequence[str] = ('dataset_id', 'table_resource', 'impersonation_chain', 'project_id')[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryUpdateTableSchemaOperator(*, schema_fields_updates, dataset_id, table_id, include_policy_tags=False, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', impersonation_chain=None, location=None, **kwargs)[source]¶
繼承自:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
更新 BigQuery 表格結構描述。
根據提供的
schema_fields_updates
參數內容,更新資料表結構描述上的欄位。提供的結構描述不必完整,如果欄位已存在於結構描述中,您只需要提供要修補的項目的鍵和值,只需確保已設定 “name” 鍵即可。參見
如需更多關於如何使用此運算子的資訊,請參閱指南:更新資料表結構描述
- 參數
schema_fields_updates (list[dict[str, Any]]) –
部分結構描述資源。請參閱 https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#TableSchema
schema_fields_updates = [ {"name": "emp_name", "description": "Some New Description"}, { "name": "salary", "policyTags": {"names": ["some_new_policy_tag"]}, }, { "name": "departments", "fields": [ {"name": "name", "description": "Some New Description"}, {"name": "type", "description": "Some New Description"}, ], }, ]
include_policy_tags (bool) – (選填) 如果設定為 True,則原則標籤將包含在更新請求中,即使未變更也需要特殊權限 (預設為 False),請參閱 https://cloud.google.com/bigquery/docs/column-level-security#roles
dataset_id (str) – 點狀表示法
(<project>.|<project>:)<dataset>
,指示要更新的資料集。(可使用範本)table_id (str) – 請求的資料表之資料表 ID。(可使用範本)
project_id (str) – 我們要在其中更新資料集的專案名稱。如果
dataset_reference
中有 projectId,則無需提供。gcp_conn_id (str) – (可選) 用於連線到 Google Cloud 的連線 ID。
location (str | None) – 用於操作的位置。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
- template_fields: collections.abc.Sequence[str] = ('schema_fields_updates', 'dataset_id', 'table_id', 'project_id', 'impersonation_chain')[source]¶
- class airflow.providers.google.cloud.operators.bigquery.BigQueryInsertJobOperator(configuration, project_id=PROVIDE_PROJECT_ID, location=None, job_id=None, force_rerun=True, reattach_states=None, gcp_conn_id='google_cloud_default', impersonation_chain=None, cancel_on_kill=True, result_retry=DEFAULT_RETRY, result_timeout=None, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), poll_interval=4.0, **kwargs)[source]¶
繼承自:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
、airflow.providers.google.cloud.openlineage.mixins._BigQueryOpenLineageMixin
執行 BigQuery 任務。
等待工作完成並傳回工作 ID。此運算子的運作方式如下:
它使用工作的組態或 UUID (如果
force_rerun
為 True) 計算工作的唯一雜湊值- 以以下形式建立
job_id
[provided_job_id | airflow_{dag_id}_{task_id}_{exec_date}]_{uniqueness_suffix}
- 以以下形式建立
使用
job_id
提交 BigQuery 工作- 如果具有給定 ID 的工作已存在,則當工作尚未完成且其
狀態在
reattach_states
中時,它會嘗試重新附加到該工作。如果工作已完成,運算子將引發AirflowException
。
使用
force_rerun
將每次提交新工作,而不會附加到已存在的工作。如需工作定義,請參閱此處
參見
如需更多關於如何使用此運算子的資訊,請參閱指南:執行 BigQuery 工作
- 參數
configuration (dict[str, Any]) –
configuration
參數直接對應到工作物件中的 BigQueryconfiguration
欄位。如需更多詳細資訊,請參閱 https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#jobconfigurationjob_id (str | None) – 工作的 ID。除非
force_rerun
為 True,否則它將附加工作組態的雜湊值。ID 必須僅包含字母 (a-z、A-Z)、數字 (0-9)、底線 (_) 或破折號 (-)。最大長度為 1,024 個字元。如果未提供,則將產生 UUID。force_rerun (bool) – 如果為 True,則運算子將使用 UUID 的雜湊值作為工作 ID 後綴
reattach_states (set[str] | None) – BigQuery 工作狀態的集合,在這些狀態下,我們應重新附加到工作。應為非最終狀態。
project_id (str) – 執行工作的 Google Cloud 專案
location (str | None) – 工作執行的位置
gcp_conn_id (str) – 用於連線至 Google Cloud 的連線 ID。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或用於取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬身分。如果設定為字串,則帳戶必須授予原始帳戶 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身分必須將 Service Account Token Creator IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(已範本化)。
cancel_on_kill (bool) – 旗標,指示在呼叫
on_kill
時是否取消 Hook 的工作result_retry (google.api_core.retry.Retry) – 如何重試檢索列的
result
呼叫result_timeout (float | None) – 在使用
result_retry
之前,等待result
方法的秒數deferrable (bool) – 在可延遲模式下執行運算子
poll_interval (float) – (僅限可延遲模式) 輪詢週期,單位為秒,用於檢查任務狀態。預設值為 4 秒。
- template_fields: collections.abc.Sequence[str] = ('configuration', 'job_id', 'impersonation_chain', 'project_id')[source]¶
- template_ext: collections.abc.Sequence[str] = ('.json', '.sql')[source]¶