0

我在 Azure Blob 存储中有一堆文件,并且不断有新文件。我想知道是否有办法让我首先获取 Blob 中的所有数据并将其移至 BigQuery,然后保持脚本或某些作业运行,以便将其中的所有新数据发送到 BigQuery?

4

2 回答 2

1

BigQuery 支持直接从以下外部数据源查询数据Google Cloud BigtableGoogle Cloud StorageGoogle Drive。不包括 Azure Blob 存储。正如 Adam Lydick 所提到的,作为一种解决方法,您可以将数据/文件从 Azure Blob 存储复制到 Google Cloud Storage(或其他支持 BigQuery 的外部数据源)。

要将数据从 Azure Blob 存储复制到 Google Cloud Storage,您可以运行WebJobs(或Azure Functions),并且BlobTriggerred WebJob可以在创建或更新 blob 时触发函数,在 WebJob 函数中您可以访问 blob 内容并写入/上传它到谷歌云存储。

注意:我们可以安装这个库:Google.Cloud.Storage在客户端代码中进行通用操作。此博客解释了如何在 Azure Functions 中使用 Google.Cloud.Storage sdk 。

于 2017-06-29T03:05:32.303 回答
1

我不知道有什么开箱即用的东西(在谷歌的基础设施上)可以实现这一点。

我可能会设置一个微型虚拟机来:

  • 扫描 Azure blob 存储以查找新内容。
  • 将新内容复制到 GCS(或本地磁盘)。
  • 定期启动 LOAD 作业以将新数据添加到 BigQuery。

如果您使用 GCS 而不是 Azure Blob 存储,则可以消除 VM,只使用一个云函数,该函数会在添加到 GCS 存储桶的新项目时触发(假设您的 Blob 采用 BigQuery 知道如何读取的形式)。我认为这是您不希望修改的现有解决方案的一部分。

于 2017-06-29T01:10:21.367 回答