Azure 数据工厂 - Google BigQuery 复制数据 activity 不返回嵌套的列名称
Azure Data Factory - Google BigQuery Copy Data activity not returning nested column names
我在 Azure 数据工厂中有一个副本 activity,带有 Google BigQuery 源。
我需要导入整个 table(其中包含嵌套字段 - BigQuery 中的记录)。
嵌套字段按如下方式导入(仅包含数据值的字符串):
"{\"v\":{\"f\":[{\"v\":\"1\"},{\"v\":\"1\"},{\"v\":\"1\"},{\"v\":null},{\"v\":\"1\"},{\"v\":null},{\"v\":null},{\"v\":\"1\"},{\"v\":null},{\"v\":null},{\"v\":null},{\"v\":null},{\"v\":\"0\"}]}}"
预期输出类似于:
{"nestedColName" : [{"subNestedColName": 1}, {"subNestedColName": 1}, {"subNestedColName": 1}, {"subNestedColName": null}, ...] }
我认为这是数据工厂方面的连接器问题,但不确定如何进行。
考虑过使用Databricks直接从GBQ导入数据,然后将DataFrame保存到sink。
还考虑过查询列的子集并在需要时使用 UNNEST
但宁愿不这样做,因为 Parquet 处理 Array 和 Map 类型。
以前有人遇到过这个/你做了什么?
使用的解决方案:
Google BigQuery 的 Databricks (Spark) 连接器:
https://docs.databricks.com/data/data-sources/google/bigquery.html
这会保留模式和嵌套的字段名称。
我在 Azure 数据工厂中有一个副本 activity,带有 Google BigQuery 源。 我需要导入整个 table(其中包含嵌套字段 - BigQuery 中的记录)。
嵌套字段按如下方式导入(仅包含数据值的字符串):
"{\"v\":{\"f\":[{\"v\":\"1\"},{\"v\":\"1\"},{\"v\":\"1\"},{\"v\":null},{\"v\":\"1\"},{\"v\":null},{\"v\":null},{\"v\":\"1\"},{\"v\":null},{\"v\":null},{\"v\":null},{\"v\":null},{\"v\":\"0\"}]}}"
预期输出类似于:
{"nestedColName" : [{"subNestedColName": 1}, {"subNestedColName": 1}, {"subNestedColName": 1}, {"subNestedColName": null}, ...] }
我认为这是数据工厂方面的连接器问题,但不确定如何进行。
考虑过使用Databricks直接从GBQ导入数据,然后将DataFrame保存到sink。
还考虑过查询列的子集并在需要时使用 UNNEST
但宁愿不这样做,因为 Parquet 处理 Array 和 Map 类型。
以前有人遇到过这个/你做了什么?
使用的解决方案:
Google BigQuery 的 Databricks (Spark) 连接器:
https://docs.databricks.com/data/data-sources/google/bigquery.html
这会保留模式和嵌套的字段名称。