несовместимая спецификация разделения таблиц при использовании CLI BigQuery для таблицы массивов - PullRequest
0 голосов
/ 24 июня 2019

У меня есть следующий SQL:

#standardSql
CREATE OR REPLACE TABLE batch_report
(
  date DATE,
  memberId STRING OPTIONS(description="xxxx member ID"),
  variables ARRAY<STRUCT<
      id STRING,
      datatype STRING,
      effectiveDate TIMESTAMP,
      values ARRAY<STRUCT<
          id STRING,
          value STRING
        >
      >,
    isSensitive BOOLEAN,
    name STRING
    >
  >
)
PARTITION BY date
OPTIONS (
  partition_expiration_days=62, -- two months
  description="Stores the raw response from the xxxx batch endpoint"
)

при запуске через CLI с использованием bq query --dataset=dev < create_batch_report.sql выдается следующее сообщение об ошибке:

Incompatible table partitioning specification. Expected partitioning specification none, but input partitioning specification is
interval(type:day,field:date)

Однако, если запустить его в консоли BigQuery и указать имя набора данных в операторе CREATE OR REPLACE TABLE, он будет работать правильно. Это ошибка, если да, то как мне ее обойти?

1 Ответ

0 голосов
/ 24 июня 2019

При запуске через CLI я изменил первую строку, чтобы включить набор данных, а не передавать его с помощью флага dataset.Это заставило это выполнить правильно.Я изменил SQL на:

#standardSql
CREATE OR REPLACE TABLE {ENVIRONMENT}.batch_report
(
  date DATE,
  memberId STRING OPTIONS(description="xxxx member ID"),
  variables ARRAY<STRUCT<
      id STRING,
      datatype STRING,
      effectiveDate TIMESTAMP,
      values ARRAY<STRUCT<
          id STRING,
          value STRING
        >
      >,
    isSensitive BOOLEAN,
    name STRING
    >
  >
)
PARTITION BY date
OPTIONS (
  partition_expiration_days=62, -- two months
  description="Stores the raw response from the xxxx batch endpoint"
)

и выполнил его через CLI с помощью:

sed s/"{ENVIRONMENT}"/${ENVIRONMENT}/g create_batch_report.sql | \
    bq query
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...