繁体   English   中英

如何使用 Azure Synapse Analytics 从 Google BigQuery 项目动态复制多个数据集

[英]How to dynamically copy multiple datasets from a Google BigQuery project using Azure Synapse Analytics

是否可以将所有数据集从 BigQuery 项目动态复制到 Azure Synapse Analytics,然后动态复制每个数据集中的所有表? 我知道我们可以动态复制 BigQuery 数据集引用中的所有表到这个已回答的问题Loop over of table names ADFv2 ,但是有没有办法在项目级别使用查找活动来循环遍历所有数据集? 有没有办法对数据集执行SELECT *

SELECT
*
FROM
gcp_project_name.dataset_name.INFORMATION_SCHEMA.TABLES
WHERE table_type = 'BASE TABLE'

根据 Microsoft 在 Azure Data Factory 和 Azure Synapse Analytics 中的 Lookup 活动,这仅达到数据集级别。 我还尝试将 GCP 的项目名称放入 Lookup 活动的查询中,但它没有用,参考理解“未找到:数据集 ### 未在美国位置找到”错误

  • 这可以使用两级流水线来完成。 我试图重现这一点,下面是方法。

  • 进行查找活动并将 Google 大查询作为源数据集。 在查询文本框中,输入以下查询。

SELECT schema_name
FROM  `project_name`.INFORMATION_SCHEMA.SCHEMATA

此查询将列出项目中的数据集。

在此处输入图像描述

  • 在查找活动旁边添加一个 for-each 活动。 在 for-each 设置项中,输入@activity('Lookup1').output.value作为动态内容。

在此处输入图像描述

  • 然后在 for-each 活动中,使用与源数据集相同的大查询数据集进行另一个查找活动。 键入以下查询作为动态内容。
SELECT
*
FROM
gcp_project_name.dataset_name.@{item().schema_name}.TABLES
WHERE table_type = 'BASE TABLE'

这将给出每个数据集中所有表的列表。

由于您不能在 ADF 中将 for-each 嵌套在 for-each 中,因此您可以设计一个两级管道,其中具有外部 ForEach 循环的外部管道在具有嵌套循环的内部管道上进行迭代。

请参考 NiharikaMoola-MT 在此SO 线程上针对 ADF 中的嵌套 foreach 的回答。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM