[ 
https://issues.apache.org/jira/browse/BEAM-1440?focusedWorklogId=335433&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-335433
 ]

ASF GitHub Bot logged work on BEAM-1440:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 29/Oct/19 09:18
            Start Date: 29/Oct/19 09:18
    Worklog Time Spent: 10m 
      Work Description: kamilwu commented on pull request #9772: [BEAM-1440] 
Create a BigQuery source that implements iobase.BoundedSource for Python
URL: https://github.com/apache/beam/pull/9772#discussion_r339962428
 
 

 ##########
 File path: sdks/python/apache_beam/io/gcp/bigquery_tools.py
 ##########
 @@ -370,7 +383,37 @@ def _start_query_job(self, project_id, query, 
use_legacy_sql, flatten_results,
             jobReference=reference))
 
     response = self.client.jobs.Insert(request)
-    return response.jobReference.jobId, response.jobReference.location
+    return response
+
+  def wait_for_bq_job(self, job_reference, sleep_duration_sec=5,
+                      max_retries=60):
+    """Poll job until it is DONE.
+
+    Args:
+      job_reference: bigquery.JobReference instance.
+      sleep_duration_sec: Specifies the delay in seconds between retries.
+      max_retries: The total number of times to retry. If equals to 0,
+        the function waits forever.
+
+    Raises:
+      `RuntimeError`: If the job is FAILED or the number of retries has been
+        reached.
+    """
+    retry = 0
+    while True:
+      retry += 1
+      job = self.get_job(job_reference.projectId, job_reference.jobId,
+                         job_reference.location)
+      logging.info('Job status: %s', job.status.state)
+      if job.status.state == 'DONE' and job.status.errorResult:
+        raise RuntimeError("BigQuery job %s failed. Error Result: %s",
 
 Review comment:
   Oh, you're right. In that some maybe I'll use the `format` method
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 335433)
    Time Spent: 5h 10m  (was: 5h)

> Create a BigQuery source (that implements iobase.BoundedSource) for Python SDK
> ------------------------------------------------------------------------------
>
>                 Key: BEAM-1440
>                 URL: https://issues.apache.org/jira/browse/BEAM-1440
>             Project: Beam
>          Issue Type: New Feature
>          Components: sdk-py-core
>            Reporter: Chamikara Madhusanka Jayalath
>            Assignee: Kamil Wasilewski
>            Priority: Major
>          Time Spent: 5h 10m
>  Remaining Estimate: 0h
>
> Currently we have a BigQuery native source for Python SDK [1].
> This can only be used by Dataflow runner.
> We should  implement a Beam BigQuery source that implements 
> iobase.BoundedSource [2] interface so that other runners that try to use 
> Python SDK can read from BigQuery as well. Java SDK already has a Beam 
> BigQuery source [3].
> [1] 
> https://github.com/apache/beam/blob/master/sdks/python/apache_beam/io/gcp/bigquery.py
> [2] 
> https://github.com/apache/beam/blob/master/sdks/python/apache_beam/io/iobase.py#L70
> [3] 
> https://github.com/apache/beam/blob/master/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.java#L1189



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to