需要帮助根据 BigQuery 中的值将 Google Cloud Storage 中的特定 PDF 文件移动到 SFTP
Posted
技术标签:
【中文标题】需要帮助根据 BigQuery 中的值将 Google Cloud Storage 中的特定 PDF 文件移动到 SFTP【英文标题】:Need help moving specific PDF files in Google Cloud Storage to an SFTP, based on values located in BigQuery 【发布时间】:2021-12-28 13:42:25 【问题描述】:我有一个用例,我需要将存储在 Google Cloud Storage Bucket 中的 PDF 文件复制到我设置的 SFTP。存储桶中的特定文件名和位置将位于 Google BigQuery 视图中。
我的经验有限,我一直在尝试使用我熟悉的工具来解决这个问题,但一直在苦苦挣扎。这些我觉得很舒服的工具是:
BigQuery 微软流 SFTP 在 VirtualMachine 上使用 CMD 提示和 .bat 文件的 WinSCP我们将不胜感激,特别是如果使用上面列出的工具。
【问题讨论】:
WinSCP 可以访问 GC 存储桶(通过 S3)和 SFTP。所以你可以用它从GC桶下载到本地机器,然后上传到SFTP。 Pentium10 的答案很棒! 【参考方案1】:您可以通过Cloud Workflows 实现此目的,
基本上你需要创建一个工作流
运行 BigQuery 选择语句(例如 here) 遍历条目 启动发出相关命令的 Cloud Build 作业 从 GCS 下载文件(类似于 workflow) 从 Secret Manager 获取 SFTP 凭据(类似于 this) 向 SFTP 命令发出上传文件所有这些的一个很好的来源是我的两篇文章中的一部分,你可以找到链接。如果您需要帮助,请私下联系我。
【讨论】:
【参考方案2】:看来您需要执行以下步骤:
-
通过读取 bigquery 表/视图来收集文件名和路径
对于每个文件,然后从 GCS 下载并上传到 FTP 服务器
创建脚本应该非常简单,并且可能是编写健壮且可测试的程序的绝佳选择。
您可以为此使用 Python(也可以使用 Java、Go、Bash...),因为您可以通过 API 轻松地与 Google BigQuery 和 Cloud Storage 进行交互。
然后根据您选择的语言进行 FTP 上传。
参考资料:
-
从大查询中读取数据:https://cloud.google.com/bigquery/docs/bigquery-storage-python-pandas
从 GCS 下载数据:https://cloud.google.com/storage/docs/reference/libraries#client-libraries-install-python
【讨论】:
以上是关于需要帮助根据 BigQuery 中的值将 Google Cloud Storage 中的特定 PDF 文件移动到 SFTP的主要内容,如果未能解决你的问题,请参考以下文章