How can I create a new view in bigquery using the python API?

后端 未结 4 1278
北荒
北荒 2021-01-19 16:19

I have some code that automatically generates a bunch of different SQL queries that I would like to insert into the bigquery to generate views, though one of the issues that

4条回答
  •  日久生厌
    2021-01-19 16:51

    bigquery.version -> '1.10.0'

    def create_view(client, dataset_name, view_name, view_query):
        try:
            dataset_ref = client.dataset(dataset_name)
            view = dataset_ref.table(view_name)
            # view.table_type = 'VIEW'
            view.view_query = view_query
            view.view_query_legacy_sql  = False
            client.create_table(view)
            pass
        except Exception as e:
            errorStr = 'ERROR (create_view): ' + str(e)
            print(errorStr)
            raise
    

    create a table not a view !!!!

    This is the right code to create a view:

    def create_view(client, dataset_name, view_name, view_query):
        try:
            dataset_ref = client.dataset(dataset_name)
            view_ref = dataset_ref.table(view_name)
            table = bigquery.Table(view_ref)
            table.view_query = view_query
            table.view_use_legacy_sql = False
            client.create_table(table)
        except Exception as e:
            errorStr = 'ERROR (create_view): ' + str(e)
            print(errorStr)
            raise
    

    Is necessary

    table = bigquery.Table(view_ref)
    

提交回复
热议问题