使用 BigTable 源时如何获得干净的 BigQuery 模式?

How to get a clean BigQuery schema when using a BigTable source?

BigTable:一个简单的 table,带有一个字符串键和一个列族,publication_number,也是一个字符串。

这个 table 可以按照 Google's instructions.

作为数据集装载到 BigQuery 中

查询此 table 时,我希望看到一个简单的两列输出:rowkeypublication_number,均为 STRING。相反,我看到了这个:

BigQuery 加了一个.column,一个.column.name.cell.cell.timestamp,最后的值在.column.cell.value

有没有办法将其简化为只有:

rowkey              STRING
publication_number  STRING

没有别的吗?我可以更改 table 的创建方式和导出方式。

一个选项是在 table 上创建一个逻辑视图,以公开您想要的模式:

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`