airflow.providers.google.cloud.transfers.sql_to_gcs

SQL to GCS 運算子的基礎運算子。

模組內容

類別

BaseSQLToGCSOperator

以 JSON、CSV 或 Parquet 格式從 SQL 複製資料到 Google Cloud Storage。

class airflow.providers.google.cloud.transfers.sql_to_gcs.BaseSQLToGCSOperator(*, sql, bucket, filename, schema_filename=None, approx_max_file_size_bytes=1900000000, export_format='json', stringify_dict=False, field_delimiter=',', null_marker=None, gzip=False, schema=None, parameters=None, gcp_conn_id='google_cloud_default', impersonation_chain=None, upload_metadata=False, exclude_columns=None, partition_columns=None, write_on_empty=False, parquet_row_group_size=100000, **kwargs)[原始碼]

基底類別: airflow.models.BaseOperator

以 JSON、CSV 或 Parquet 格式從 SQL 複製資料到 Google Cloud Storage。

參數
  • sql (str) – 要執行的 SQL 語句。

  • bucket (str) – 要上傳的儲存桶。

  • filename (str) – 上傳到 Google Cloud Storage 時,用作物件名稱的檔案名稱。應在檔案名稱中指定 {},以便在檔案因大小而分割時,運算子可以注入檔案編號。

  • schema_filename (str | None) – 如果設定,則用作物件名稱的檔案名稱,用於上傳包含從資料庫傾印的表格的 BigQuery schema 欄位的 .json 檔案。

  • approx_max_file_size_bytes (int) – 此運算子支援將大型表格傾印分割成多個檔案的功能(請參閱上面 filename 參數文件中的註解)。此參數允許開發人員指定分割檔案的大小。請查看 https://cloud.google.com/storage/quotas 以查看單一物件允許的最大檔案大小。

  • export_format (str) – 要匯出檔案的期望格式。(json、csv 或 parquet)

  • stringify_dict (bool) – 是否將字典類型物件(例如 JSON 欄位)傾印為字串。僅適用於 CSV/JSON 匯出格式。

  • field_delimiter (str) – 用於 CSV 檔案的分隔符號。

  • null_marker (str | None) – 用於 CSV 檔案的 null 標記。

  • gzip (bool) – 壓縮檔案以上傳的選項(不適用於 schema)。

  • schema (str | list | None) – 要使用的 schema,如果有的話。應為字典列表或字串。如果使用 Jinja 範本,請傳遞字串,否則傳遞字典列表。範例請參閱: https://cloud.google.com/bigquery/docs /schemas#specifying_a_json_schema_file

  • gcp_conn_id (str) – (選填) 用於連線到 Google Cloud 的連線 ID。

  • parameters (dict | None) – 在查詢執行時替換的參數字典。

  • impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬身分,或鏈式帳戶列表,用於取得列表中最後一個帳戶的 access_token,該帳戶將在請求中被模擬身分。如果設定為字串,則該帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則列表中的身分必須將「服務帳戶權杖建立者」IAM 角色授予緊鄰的前一個身分,列表中的第一個帳戶將此角色授予原始帳戶(範本化)。

  • upload_metadata (bool) – 是否將列數 metadata 作為 blob metadata 上傳

  • exclude_columns (set | None) – 要從傳輸中排除的欄位集合

  • partition_columns (list | None) – 用於檔案分割的欄位列表。為了使用此參數,您必須依 partition_columns 對資料集進行排序。透過將 ORDER BY 子句傳遞到 sql 查詢來執行此操作。檔案以上傳到 GCS 作為具有 Hive 樣式分割目錄結構的物件(範本化)。

  • write_on_empty (bool) – 選填參數,用於指定在匯出未傳回任何列時是否寫入檔案。預設值為 False,因此如果匯出未傳回任何列,我們將不會寫入檔案。

  • parquet_row_group_size (int) – 使用 parquet 格式時,每個 row group 中的概略列數。使用較大的 row group 大小可以減少檔案大小並提高讀取資料的效能,但執行運算子需要更多記憶體。(預設值:100000)

template_fields: collections.abc.Sequence[str] = ('sql', 'bucket', 'filename', 'schema_filename', 'schema', 'parameters', 'impersonation_chain',...[原始碼]
template_ext: collections.abc.Sequence[str] = ('.sql',)[原始碼]
template_fields_renderers[原始碼]
ui_color = '#a0e08c'[原始碼]
execute(context)[原始碼]

在建立運算子時衍生。

Context 與呈現 Jinja 範本時使用的字典相同。

請參閱 get_template_context 以取得更多 context。

convert_types(schema, col_type_dict, row)[原始碼]

將值從 DBAPI 轉換為輸出友善的格式。

abstract query()[原始碼]

執行 DBAPI 查詢。

abstract field_to_bigquery(field)[原始碼]

將 DBAPI 欄位轉換為 BigQuery schema 格式。

abstract convert_type(value, schema_type, **kwargs)[原始碼]

將值從 DBAPI 轉換為輸出友善的格式。

這個條目有幫助嗎?