BigQuery: - [нет] флаг use_avro_logical_types не работает - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь использовать команду bq с флагом --[no]use_avro_logical_types для загрузки файлов avro в таблицу BigQuery, которая не существует до выполнения команды. Схема avro содержит timestamp-millis значение логического типа. Когда команда выполняется, создается новая таблица, но схема ее столбца становится INTEGER. Это недавно выпущенная функция, поэтому я не могу найти примеры и не знаю, что мне не хватает. Кто-нибудь может дать мне хороший пример?

Моя схема avro выглядит следующим образом,

...
  }, {
    "name" : "timestamp",
    "type" : [ "null", "long" ],
    "default" : null,
    "logicalType" : [ "null", "timestamp-millis" ]
  }, {
...

И выполнение команды таково: bq load --source_format=AVRO --use_avro_logical_types <table> <path/to/file>

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Чтобы использовать логический тип timestamp-millis, вы можете указать это поле следующим образом:

{
  "name" : "timestamp",
  "type" : {"type": "long", "logicalType" : "timestamp-millis"}
}

Чтобы указать необязательное нулевое значение, вы можете попробовать следующую спецификацию:

{
  "name" : "timestamp",
  "type" : {"type": [null, "long"], "logicalType" : "timestamp-millis"}
}

Полный список поддерживаемых логических типов Avro см. В спецификации Avro: https://avro.apache.org/docs/1.8.0/spec.html#Logical+Types.

0 голосов
/ 19 ноября 2018

Согласно https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-avro, тип avro, timestamp-millis, преобразуется в INTEGER после загрузки в BigQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...