使用 Azure 数据工厂将数据从 Google Big Query 移动到 Azure Data Lake Store
Posted
技术标签:
【中文标题】使用 Azure 数据工厂将数据从 Google Big Query 移动到 Azure Data Lake Store【英文标题】:Moving data from Google Big Query to Azure Data Lake Store using Azure Data Factory 【发布时间】:2018-02-26 14:30:09 【问题描述】:我有一个场景,我需要在 Google Big Query 中连接 Azure 数据工厂 (v2) 以将数据移动到我的 Azure 数据湖,但我不工作。
当我创建链接服务时,我选择 Big Query 作为源,我输入了有关 BigQuery 的所有信息,如项目名称、连接类型等,但是当我单击 Validade 按钮时,会显示一条消息:(对于例子)...
UserError: 错误 [28000] [Microsoft][BigQuery] (80) 身份验证 失败:invalid_grant 错误 [28000] [Microsoft][BigQuery] (80) 身份验证失败:invalid_grant'Type=,Message=ERROR [28000] [Microsoft][BigQuery] (80) 身份验证失败:invalid_grant ERROR [28000] [Microsoft][BigQuery] (80) 身份验证失败: invalid_grant,Source=,',activityId: 05ff5ce1-5262-4794-853c-c9e39b7f4b71
有什么想法吗?有人已经测试过这个连接器吗?
谢谢。 彼得·博诺莫
【问题讨论】:
【参考方案1】:BigQuery 的 ADF 连接器文档解释了参数的含义,但没有提供有关如何获取这些参数值的任何指导。
我花了几天时间,终于让它工作了。我使用“用户身份验证”是因为我想使用基于云的 IR。 “Client Id”和“Client Secret”可以通过在 GCP Console 中创建新凭据来获取。但是要获得“刷新令牌”,您必须与 Google 进行 OAuth2 共舞并拦截令牌。
我为您编写了一个 PowerShell 脚本,并在 GitHub 上写了一篇文章,引导您完成将 ADF v2 验证到 Google BigQuery 的过程:
https://github.com/AnalyticJeremy/ADF_BigQuery
【讨论】:
非常有用,我在 GitHub 存储库上发布了运行 powershell 脚本的问题。谢谢,如果你能看一下。【参考方案2】:不幸的是,这是您因任何访问问题而遇到的错误。这也是您在刷新令牌过期时遇到的错误,它总是在 60 分钟后发生。这令人难以置信的好奇......这就像很多关于 ADF 的 OAuth2.0 身份验证的指令集,从来没有提到所有这些工作都是为了获得一个在 60 分钟内过期的代码。如果没有某种方法在每次连接时都刷新它,这是毫无价值的。至少下面的链接提到了这个错误,你得到它是因为令牌已经过期......它是唯一一个麻烦提到这个超级大问题的博客文章(或 Microsoft 文档)。 https://medium.com/@varunck/data-transfer-from-google-bigquery-to-azure-blob-storage-using-azure-data-factory-adf-80659c078f83
这是我将尝试的另一种方法...它使用服务帐户和 IR https://www.youtube.com/watch?v=oRqRt7ya_DM
【讨论】:
【参考方案3】:根据https://docs.microsoft.com/en-us/azure/data-factory/connector-google-bigquery,要通过云IR连接到Google BigQuery,您需要提供以下信息:
"name": "GoogleBigQueryLinkedService",
"properties":
"type": "GoogleBigQuery",
"typeProperties":
"project" : "<project ID>",
"additionalProjects" : "<additional project IDs>",
"requestGoogleDriveScope" : true,
"authenticationType" : "UserAuthentication",
"clientId": "<id of the application used to generate the refresh token>",
"clientSecret":
"type": "SecureString",
"value":"<secret of the application used to generate the refresh token>"
,
"refreshToken":
"type": "SecureString",
"value": "<refresh token>"
并且您用来授予应用程序权限的用户应该有权访问您要查询的项目。
谢谢, 伊娃
【讨论】:
以上是关于使用 Azure 数据工厂将数据从 Google Big Query 移动到 Azure Data Lake Store的主要内容,如果未能解决你的问题,请参考以下文章
使用 Azure 数据工厂将数据从 Office 365 BasicDataSet_v0.Message_v0 复制到 Azure
Azure 数据工厂问题将数据从本地 sql Server 写入 Azure SQL 数据库
将 Azure 数据工厂上的数据管道从 SQL Server 复制到 Blob 存储
将数据从 Azure Blob 存储复制到 Azure SQLDB 时,Azure 数据工厂错误地复制单元格值
如何从 azure blob 存储中获取 json 数据并使用 azure 数据工厂将其发送到 power apps dataverse