首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将没有外部ip的虚拟机实例的数据加载到大查询

将没有外部ip的虚拟机实例的数据加载到大查询
EN

Stack Overflow用户
提问于 2020-12-17 22:48:31
回答 2查看 231关注 0票数 0

我的目标是从vm实例连接和加载数据到大查询(这个实例安装了maria db服务器)。我可以在我的终端上使用以下命令使用tcp ip转发访问数据库(出于安全原因,没有外部ip的实例):

代码语言:javascript
复制
gcloud beta compute start-iap-tunnel my-instances 3306 --local-host-port=localhost:3309

然后我打开mysql工作台输入用户root和密码,然后数据库显示,做查询,保存到csv,最后是上传csv到大查询。

有什么建议可以自动化这个过程吗?

EN

回答 2

Stack Overflow用户

发布于 2020-12-18 04:16:17

如果您的虚拟机没有公共IP,则虚拟机无法访问公共DNS上的公共BigQuery应用程序接口。所以,使用私有API!!

为此,您需要转到您的VPC,并选择部署您的Compute Engine VM的子网。

点击编辑,打开谷歌的私人访问权限

现在,您可以通过内部网络调用BigQuery接口,无需外网IP。使用CLI或脚本来完成加载作业。

票数 1
EN

Stack Overflow用户

发布于 2020-12-17 23:07:20

使用云工作流的Devops风格。

您可以使用Cloud Workflows自动执行此操作,并使用Cloud Build自动执行这些步骤。

有一个完整的指南张贴在how to run a shell command on a VM with Cloud Workflows上,也有另一个如何从Cloud Storage to BigQuery using Cloud Workflows自动化文件。

除了运行shell命令之外,您还可以使用一系列操作来

  1. 连接到IAP
  2. 以csv形式运行SELECT INTO FILE命令(避开需要执行的操作)
  3. 使用load Storage
  4. import

将文件移至云文件到BigQuery中

通过这种方式,您不会向BigQuery产生加载成本,因为向BQ加载数据是免费的。您将产生云存储的费用,但仅限于文件存在且导入后可以删除的时间。

使用外部数据源的

您可能希望设置与数据库的Cloud SQL连接。通过执行步骤定义的here来查看是否适用于您的设置。

您需要遵循该指南,在外部数据源窗格中,输入所需的连接信息,如云SQL实例id、用户、密码。

如果连接成功,您可以使用EXTERNAL_QUERY语法从云SQL实例中读取数据,并写入BigQuery表。这样做会产生成本,因为查询也是为从云SQL读取的数据计费的。

代码语言:javascript
复制
SELECT * FROM EXTERNAL_QUERY("connection_id",
"select * from db.table;");

您可以使用计划的查询自动执行此步骤。

https://cloud.google.com/bigquery/docs/cloud-sql-federated-queries#setting-up-cloud-sql-database-connections

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65342943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档