|
43 | 43 | TABLE_1 = "table1"
|
44 | 44 | TABLE_2 = "table2"
|
45 | 45 |
|
46 |
| - |
47 |
| -INSERT_DATE = datetime.now().strftime("%Y-%m-%d") |
48 |
| - |
49 |
| -# [START howto_operator_bigquery_query] |
50 |
| -INSERT_ROWS_QUERY = ( |
51 |
| - f"INSERT {DATASET_NAME}.{TABLE_1} VALUES " |
52 |
| - f"(42, 'monthy python', '{INSERT_DATE}'), " |
53 |
| - f"(42, 'fishy fish', '{INSERT_DATE}');" |
54 |
| -) |
55 |
| -# [END howto_operator_bigquery_query] |
56 |
| - |
57 | 46 | SCHEMA = [
|
58 | 47 | {"name": "value", "type": "INTEGER", "mode": "REQUIRED"},
|
59 | 48 | {"name": "name", "type": "STRING", "mode": "NULLABLE"},
|
60 | 49 | {"name": "ds", "type": "DATE", "mode": "NULLABLE"},
|
61 | 50 | ]
|
62 | 51 |
|
63 |
| -for location in [None, LOCATION]: |
| 52 | +locations = [None, LOCATION] |
| 53 | +for index, location in enumerate(locations, 1): |
64 | 54 | dag_id = "example_bigquery_queries_location" if location else "example_bigquery_queries"
|
| 55 | + DATASET = DATASET_NAME + str(index) |
| 56 | + INSERT_DATE = datetime.now().strftime("%Y-%m-%d") |
| 57 | + # [START howto_operator_bigquery_query] |
| 58 | + INSERT_ROWS_QUERY = ( |
| 59 | + f"INSERT {DATASET}.{TABLE_1} VALUES " |
| 60 | + f"(42, 'monthy python', '{INSERT_DATE}'), " |
| 61 | + f"(42, 'fishy fish', '{INSERT_DATE}');" |
| 62 | + ) |
| 63 | + # [END howto_operator_bigquery_query] |
65 | 64 |
|
66 | 65 | with models.DAG(
|
67 | 66 | dag_id,
|
68 | 67 | schedule_interval='@once', # Override to match your needs
|
69 | 68 | start_date=days_ago(1),
|
70 | 69 | tags=["example"],
|
71 |
| - user_defined_macros={"DATASET": DATASET_NAME, "TABLE": TABLE_1}, |
| 70 | + user_defined_macros={"DATASET": DATASET, "TABLE": TABLE_1}, |
72 | 71 | ) as dag_with_locations:
|
73 | 72 | create_dataset = BigQueryCreateEmptyDatasetOperator(
|
74 | 73 | task_id="create-dataset",
|
75 |
| - dataset_id=DATASET_NAME, |
| 74 | + dataset_id=DATASET, |
76 | 75 | location=location,
|
77 | 76 | )
|
78 | 77 |
|
79 | 78 | create_table_1 = BigQueryCreateEmptyTableOperator(
|
80 | 79 | task_id="create_table_1",
|
81 |
| - dataset_id=DATASET_NAME, |
| 80 | + dataset_id=DATASET, |
82 | 81 | table_id=TABLE_1,
|
83 | 82 | schema_fields=SCHEMA,
|
84 | 83 | location=location,
|
85 | 84 | )
|
86 | 85 |
|
87 | 86 | create_table_2 = BigQueryCreateEmptyTableOperator(
|
88 | 87 | task_id="create_table_2",
|
89 |
| - dataset_id=DATASET_NAME, |
| 88 | + dataset_id=DATASET, |
90 | 89 | table_id=TABLE_2,
|
91 | 90 | schema_fields=SCHEMA,
|
92 | 91 | location=location,
|
|
95 | 94 | create_dataset >> [create_table_1, create_table_2]
|
96 | 95 |
|
97 | 96 | delete_dataset = BigQueryDeleteDatasetOperator(
|
98 |
| - task_id="delete_dataset", dataset_id=DATASET_NAME, delete_contents=True |
| 97 | + task_id="delete_dataset", dataset_id=DATASET, delete_contents=True |
99 | 98 | )
|
100 | 99 |
|
101 | 100 | # [START howto_operator_bigquery_insert_job]
|
|
140 | 139 | configuration={
|
141 | 140 | "query": {
|
142 | 141 | "query": [
|
143 |
| - f"SELECT * FROM {DATASET_NAME}.{TABLE_2}", |
144 |
| - f"SELECT COUNT(*) FROM {DATASET_NAME}.{TABLE_2}", |
| 142 | + f"SELECT * FROM {DATASET}.{TABLE_2}", |
| 143 | + f"SELECT COUNT(*) FROM {DATASET}.{TABLE_2}", |
145 | 144 | ],
|
146 | 145 | "useLegacySql": False,
|
147 | 146 | }
|
|
153 | 152 | task_id="execute_query_save",
|
154 | 153 | configuration={
|
155 | 154 | "query": {
|
156 |
| - "query": f"SELECT * FROM {DATASET_NAME}.{TABLE_1}", |
| 155 | + "query": f"SELECT * FROM {DATASET}.{TABLE_1}", |
157 | 156 | "useLegacySql": False,
|
158 | 157 | "destinationTable": {
|
159 | 158 | 'projectId': PROJECT_ID,
|
160 |
| - 'datasetId': DATASET_NAME, |
| 159 | + 'datasetId': DATASET, |
161 | 160 | 'tableId': TABLE_2,
|
162 | 161 | },
|
163 | 162 | }
|
|
168 | 167 | # [START howto_operator_bigquery_get_data]
|
169 | 168 | get_data = BigQueryGetDataOperator(
|
170 | 169 | task_id="get_data",
|
171 |
| - dataset_id=DATASET_NAME, |
| 170 | + dataset_id=DATASET, |
172 | 171 | table_id=TABLE_1,
|
173 | 172 | max_results=10,
|
174 | 173 | selected_fields="value,name",
|
|
184 | 183 | # [START howto_operator_bigquery_check]
|
185 | 184 | check_count = BigQueryCheckOperator(
|
186 | 185 | task_id="check_count",
|
187 |
| - sql=f"SELECT COUNT(*) FROM {DATASET_NAME}.{TABLE_1}", |
| 186 | + sql=f"SELECT COUNT(*) FROM {DATASET}.{TABLE_1}", |
188 | 187 | use_legacy_sql=False,
|
189 | 188 | location=location,
|
190 | 189 | )
|
|
193 | 192 | # [START howto_operator_bigquery_value_check]
|
194 | 193 | check_value = BigQueryValueCheckOperator(
|
195 | 194 | task_id="check_value",
|
196 |
| - sql=f"SELECT COUNT(*) FROM {DATASET_NAME}.{TABLE_1}", |
| 195 | + sql=f"SELECT COUNT(*) FROM {DATASET}.{TABLE_1}", |
197 | 196 | pass_value=4,
|
198 | 197 | use_legacy_sql=False,
|
199 | 198 | location=location,
|
|
203 | 202 | # [START howto_operator_bigquery_interval_check]
|
204 | 203 | check_interval = BigQueryIntervalCheckOperator(
|
205 | 204 | task_id="check_interval",
|
206 |
| - table=f"{DATASET_NAME}.{TABLE_1}", |
| 205 | + table=f"{DATASET}.{TABLE_1}", |
207 | 206 | days_back=1,
|
208 | 207 | metrics_thresholds={"COUNT(*)": 1.5},
|
209 | 208 | use_legacy_sql=False,
|
|
0 commit comments