我的第一个BigQuery python脚本

时间:2018-01-23 17:02:40

标签: database python-3.x python-requests google-bigquery

我想知道如何创建一个python脚本来访问BigQuery数据库。 我找到了很多脚本但不是一个完整的脚本。

所以,我希望有一个标准脚本来连接项目并对特定表进行查询并从中创建一个csv文件。

感谢您的帮助。 杰罗姆。

componentWillMount() {
    navigator.geolocation.getCurrentPosition(
      (position) => {
        this.setState({
          lat: position.coords.latitude,
          long: position.coords.longitude,
          error: null,
        }, () => {
          this.props.getConditions(lat, long)
       });
      },
      (error) => this.setState({ error: error.message }),
      { enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 },
    );
}

1 个答案:

答案 0 :(得分:0)

目的地格式

BigQuery支持CSV,JSON和Avro格式。

嵌套或重复的数据无法导出为CSV,但可以导出为JSON或Avro格式。

根据谷歌文档 - Google Document

尝试其他格式。

from google.cloud import bigquery
from google.cloud.bigquery.job import DestinationFormat, ExtractJobConfig, Compression

def export_table_to_gcs(dataset_id, table_id, destination):
     """
     Exports data from BigQuery to an object in Google Cloud Storage.
     For more information, see the README.rst.
     Example invocation:
     $ python export_data_to_gcs.py example_dataset example_table \\
       gs://example-bucket/example-data.csv
    The dataset and table should already exist.
    """
    bigquery_client = bigquery.Client()
    dataset_ref = bigquery_client.dataset(dataset_id)
    table_ref = dataset_ref.table(table_id)
    job_config = ExtractJobConfig()
    job_config.destination_format = DestinationFormat.NEWLINE_DELIMITED_JSON
    job_config.compression = Compression.GZIP
    job = bigquery_client.extract_table(table_ref, destination, job_config=job_config)
    job.result(timeout=300)  # Waits for job to complete
    print('Exported {}:{} to {}'.format(dataset_id, table_id, destination))