При экспорте результата оператора SELECT в BigQuery создается только пустая таблица

Я пытаюсь экспортировать результаты оператора select в другую таблицу в качестве постоянного хранилища. Но когда эта новая таблица создается, она не имеет схемы. Когда я пытаюсь запросить эту таблицу результатов, появляется ошибка:

Таблица project-id.dataset_name.temp_table не имеет схемы.

Вот мой код для экспорта результата из инструкции SELECT во временную вкладку

def query_to_table():
    service_account_info = {}  # account info

    credentials = Credentials.from_service_account_info(
        service_account_info)
    client = bigquery.Client(
        project=service_account_info.get("project_id"),
        credentials=credentials)

    query = """
            SELECT
                a,
                b

            FROM `project.dataset.table`

            WHERE a NOT IN ('error', 'warning')
        """

    destination_dataset = client.dataset("abc_123") #this is another dataset
    destination_table = destination_dataset.table("temp_table") # destination table

    try:
        client.get_table(destination_table)
        client.delete_table(destination_table)
    except Exception as e:
        # Some logging
        pass

    client.create_table(Table(destination_table))

    # Execute the job and save to table
    job_config = bigquery.QueryJobConfig()
    job_config.allow_large_results = True
    job_config.use_legacy_sql = False
    job_config.destination = destination_table
    job_config.dry_run = True

    query_job = client.query(query, job_config=job_config)

    # Wait till the job done
    while not query_job.done():
        time.sleep(1)

    logging.info(f"Processed {query_job.total_bytes_processed} bytes.")

    return destination_table

Где ошибка? Есть ли какие-либо изменения API со стороны Google Cloud? Потому что этот скрипт работал месяцем ранее.

Пожалуйста помоги.

1 ответ

Решение

Черт! Я просто понял это, потому что я установил dry_run в True,

В соответствии с этим: /questions/20963295/chto-vozvraschaet-probnyij-progon-bigquery/20963301#20963301, если для параметра dry_run установлено значение True, он просто оценивает запрос без фактического выполнения задания.

Заняло у меня 5 часов, ломая голову.:(

Другие вопросы по тегам