有没有办法将数据从 Azure Blob 持续传输到 BigQuery?

Is there a way to continuously pipe data from Azure Blob into BigQuery?

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

我不知道有什么开箱即用的(在 Google 的基础设施上)可以做到这一点。

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

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

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

BigQuery 提供对 querying data directly from these external data sources 的支持:Google Cloud BigtableGoogle Cloud Storage , Google 驱动器。不包括 Azure Blob 存储。正如 Adam Lydick 提到的,作为一种解决方法,您可以将 data/files 从 Azure Blob 存储复制到 Google Cloud Storage(或其他支持 BigQuery 的外部数据源)。

要将数据从 Azure Blob 存储复制到 Google 云存储,您可以 运行 WebJobs (or Azure Functions), and BlobTriggerred WebJob 可以在创建或更新 blob 时触发一个函数,在 WebJob 函数中您可以访问 blob 内容并将其 write/upload 到 Google 云存储。

注意:我们可以安装这个库:Google.Cloud.Storage to make common operations in client code. And this blog解释了如何在Azure Functions中使用Google.Cloud.Storage sdk。