使用 BigTable 源时如何获得干净的 BigQuery 模式?
How to get a clean BigQuery schema when using a BigTable source?
BigTable:一个简单的 table,带有一个字符串键和一个列族,publication_number
,也是一个字符串。
这个 table 可以按照 Google's instructions.
作为数据集装载到 BigQuery 中
查询此 table 时,我希望看到一个简单的两列输出:rowkey
和 publication_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`
BigTable:一个简单的 table,带有一个字符串键和一个列族,publication_number
,也是一个字符串。
这个 table 可以按照 Google's instructions.
作为数据集装载到 BigQuery 中查询此 table 时,我希望看到一个简单的两列输出:rowkey
和 publication_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`