|
23 | 23 |
|
24 | 24 | from airflow import models
|
25 | 25 | from airflow.providers.google.cloud.operators.gcs_to_bigquery import GCSToBigQueryOperator
|
| 26 | +from airflow.providers.google.marketing_platform.hooks.display_video import GoogleDisplayVideo360Hook |
26 | 27 | from airflow.providers.google.marketing_platform.operators.display_video import (
|
27 | 28 | GoogleDisplayVideo360CreateReportOperator, GoogleDisplayVideo360CreateSDFDownloadTaskOperator,
|
28 | 29 | GoogleDisplayVideo360DeleteReportOperator, GoogleDisplayVideo360DownloadLineItemsOperator,
|
|
38 | 39 | BUCKET = os.environ.get("GMP_DISPLAY_VIDEO_BUCKET", "gs://test-display-video-bucket")
|
39 | 40 | ADVERTISER_ID = os.environ.get("GMP_ADVERTISER_ID", 1234567)
|
40 | 41 | OBJECT_NAME = os.environ.get("GMP_OBJECT_NAME", "files/report.csv")
|
41 |
| -PATH_TO_UPLOAD_FILE = os.environ.get( |
42 |
| - "GCP_GCS_PATH_TO_UPLOAD_FILE", "test-gcs-example.txt" |
43 |
| -) |
44 |
| -PATH_TO_SAVED_FILE = os.environ.get( |
45 |
| - "GCP_GCS_PATH_TO_SAVED_FILE", "test-gcs-example-download.txt" |
46 |
| -) |
| 42 | +PATH_TO_UPLOAD_FILE = os.environ.get("GCP_GCS_PATH_TO_UPLOAD_FILE", "test-gcs-example.txt") |
| 43 | +PATH_TO_SAVED_FILE = os.environ.get("GCP_GCS_PATH_TO_SAVED_FILE", "test-gcs-example-download.txt") |
47 | 44 | BUCKET_FILE_LOCATION = PATH_TO_UPLOAD_FILE.rpartition("/")[-1]
|
48 | 45 | SDF_VERSION = os.environ.get("GMP_SDF_VERSION", "SDF_VERSION_5_1")
|
49 | 46 | BQ_DATA_SET = os.environ.get("GMP_BQ_DATA_SET", "airflow_test")
|
| 47 | +GMP_PARTNER_ID = os.environ.get("GMP_PARTNER_ID", 123) |
| 48 | +ENTITY_TYPE = os.environ.get("GMP_ENTITY_TYPE", "LineItem") |
| 49 | +ERF_SOURCE_OBJECT = GoogleDisplayVideo360Hook.erf_uri(GMP_PARTNER_ID, ENTITY_TYPE) |
50 | 50 |
|
51 | 51 | REPORT = {
|
52 | 52 | "kind": "doubleclickbidmanager#query",
|
|
68 | 68 |
|
69 | 69 | PARAMS = {"dataRange": "LAST_14_DAYS", "timezoneCode": "America/New_York"}
|
70 | 70 |
|
71 |
| -BODY_REQUEST: Dict = { |
| 71 | +CREATE_SDF_DOWNLOAD_TASK_BODY_REQUEST: Dict = { |
72 | 72 | "version": SDF_VERSION,
|
73 | 73 | "advertiserId": ADVERTISER_ID,
|
74 | 74 | "inventorySourceFilter": {"inventorySourceIds": []},
|
75 | 75 | }
|
76 |
| -# [END howto_display_video_env_variables] |
77 | 76 |
|
78 |
| -# download_line_items variables |
79 |
| -REQUEST_BODY = {"filterType": ADVERTISER_ID, "format": "CSV", "fileSpec": "EWF"} |
| 77 | +DOWNLOAD_LINE_ITEMS_REQUEST: Dict = { |
| 78 | + "filterType": ADVERTISER_ID, |
| 79 | + "format": "CSV", |
| 80 | + "fileSpec": "EWF"} |
| 81 | +# [END howto_display_video_env_variables] |
80 | 82 |
|
81 | 83 | default_args = {"start_date": dates.days_ago(1)}
|
82 | 84 |
|
|
119 | 121 | )
|
120 | 122 | # [END howto_google_display_video_deletequery_report_operator]
|
121 | 123 |
|
| 124 | + # [START howto_google_display_video_upload_multiple_entity_read_files_to_big_query] |
| 125 | + upload_erf_to_bq = GCSToBigQueryOperator( |
| 126 | + task_id='upload_erf_to_bq', |
| 127 | + bucket=BUCKET, |
| 128 | + source_objects=ERF_SOURCE_OBJECT, |
| 129 | + destination_project_dataset_table=f"{BQ_DATA_SET}.gcs_to_bq_table", |
| 130 | + write_disposition='WRITE_TRUNCATE', |
| 131 | + dag=dag) |
| 132 | + # [END howto_google_display_video_upload_multiple_entity_read_files_to_big_query] |
| 133 | + |
122 | 134 | # [START howto_google_display_video_download_line_items_operator]
|
123 | 135 | download_line_items = GoogleDisplayVideo360DownloadLineItemsOperator(
|
124 | 136 | task_id="download_line_items",
|
125 |
| - request_body=REQUEST_BODY, |
| 137 | + request_body=DOWNLOAD_LINE_ITEMS_REQUEST, |
126 | 138 | bucket_name=BUCKET,
|
127 | 139 | object_name=OBJECT_NAME,
|
128 | 140 | gzip=False,
|
|
139 | 151 |
|
140 | 152 | # [START howto_google_display_video_create_sdf_download_task_operator]
|
141 | 153 | create_sdf_download_task = GoogleDisplayVideo360CreateSDFDownloadTaskOperator(
|
142 |
| - task_id="create_sdf_download_task", body_request=BODY_REQUEST |
| 154 | + task_id="create_sdf_download_task", body_request=CREATE_SDF_DOWNLOAD_TASK_BODY_REQUEST |
143 | 155 | )
|
144 | 156 | operation_name = '{{ task_instance.xcom_pull("create_sdf_download_task")["name"] }}'
|
145 | 157 | # [END howto_google_display_video_create_sdf_download_task_operator]
|
|
0 commit comments