@@ -147,6 +147,62 @@ def schedule_backfill(override_values={}):
147
147
return response .runs
148
148
149
149
150
+ def schedule_backfill_manual_transfer (override_values = {}):
151
+ # [START bigquerydatatransfer_start_manual_transfer]
152
+ import datetime
153
+
154
+ from google .cloud .bigquery_datatransfer_v1 import (
155
+ DataTransferServiceClient ,
156
+ StartManualTransferRunsRequest ,
157
+ )
158
+
159
+ # Create a client object
160
+ client = DataTransferServiceClient ()
161
+
162
+ # Replace with your transfer configuration name
163
+ transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
164
+ # [END bigquerydatatransfer_start_manual_transfer]
165
+ # To facilitate testing, we replace values with alternatives
166
+ # provided by the testing harness.
167
+ transfer_config_name = override_values .get (
168
+ "transfer_config_name" , transfer_config_name
169
+ )
170
+ # [START bigquerydatatransfer_start_manual_transfer]
171
+ now = datetime .datetime .now (datetime .timezone .utc )
172
+ start_time = now - datetime .timedelta (days = 5 )
173
+ end_time = now - datetime .timedelta (days = 2 )
174
+
175
+ # Some data sources, such as scheduled_query only support daily run.
176
+ # Truncate start_time and end_time to midnight time (00:00AM UTC).
177
+ start_time = datetime .datetime (
178
+ start_time .year , start_time .month , start_time .day , tzinfo = datetime .timezone .utc
179
+ )
180
+ end_time = datetime .datetime (
181
+ end_time .year , end_time .month , end_time .day , tzinfo = datetime .timezone .utc
182
+ )
183
+
184
+ requested_time_range = StartManualTransferRunsRequest .TimeRange (
185
+ start_time = start_time ,
186
+ end_time = end_time ,
187
+ )
188
+
189
+ # Initialize request argument(s)
190
+ request = StartManualTransferRunsRequest (
191
+ parent = transfer_config_name ,
192
+ requested_time_range = requested_time_range ,
193
+ )
194
+
195
+ # Make the request
196
+ response = client .start_manual_transfer_runs (request = request )
197
+
198
+ # Handle the response
199
+ print ("Started manual transfer runs:" )
200
+ for run in response .runs :
201
+ print (f"backfill: { run .run_time } run: { run .name } " )
202
+ # [END bigquerydatatransfer_start_manual_transfer]
203
+ return response .runs
204
+
205
+
150
206
def delete_config (override_values = {}):
151
207
# [START bigquerydatatransfer_delete_transfer]
152
208
import google .api_core .exceptions
0 commit comments