Как получить чистую схему BigQuery при использовании источника BigTable? - PullRequest
0 голосов
/ 05 июля 2018

BigTable: простая таблица со строковым ключом и семейством столбцов, publication_number, также строка.

Эта таблица может быть смонтирована как набор данных в BigQuery, следуя инструкциям Google .

При запросе этой таблицы я ожидаю увидеть простой вывод из двух столбцов: rowkey и publication_number, оба STRING. Вместо этого я вижу это:

BigQuery Schema

BigQuery добавляет .column, .column.name, .cell, .cell.timestamp, и, наконец, значение находится в .column.cell.value.

Есть ли способ упростить это, чтобы иметь только:

rowkey              STRING
publication_number  STRING

И ничего больше? Я могу изменить как порядок создания таблицы, так и способ экспорта.

1 Ответ

0 голосов
/ 05 июля 2018

Одним из вариантов будет создание логического представления над таблицей, которая предоставляет нужную схему:

CREATE VIEW dataset.publication_view AS
SELECT
  rowkey,
  cell.value AS publication_number
FROM dataset.publication_table,
UNNEST(publication_number.column)

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

CREATE VIEW dataset.publication_view AS
SELECT
    rowkey,
    ARRAY_TO_STRING(ARRAY(SELECT cell.value FROM UNNEST(publication_number.column)), "") AS publication_number
FROM `dataset.publication_table`
...