所以我们刚刚收到了GCP的账单,比我们预期的要多得多。
我们有一个在GKE上运行的spring启动应用程序,但我很快就会把它移到cloud run上。此应用程序连接到云SQL postgress数据库。我有两个副本在加拿大和美国运行。由于法律要求,我们必须将原始用户数据存储在不同的数据区域中。
我们要做的是将每个地区的未识别数据导出到单个BigQuery实例中,这样我们就可以运行分析并开始创建一些ML模型。
它最初是如何设置的,我们让发布/订阅导出到BigQuery。为简单起见,我将每个表导出到BigQuery中的不同发布/订阅流中的表。
默认情况下,每个数据流实例运行4vCPU,这导致了很大的账单。这5个数据流实例占我们账单的2/3。
还有其他我应该探索的东西吗?我正在研究运行批处理查询,将数据直接导出到bigquery。我知道这不会很好地扩展,但我需要达到一个点,我们有足够的用户来担心规模。
蒂娅。
发布于 2021-05-06 15:06:59
对于您的用例,有几种解决方案。
与BigQuery同步云SQL数据
推荐您去看看BigQuery Cloud SQL federated queries,它可以让您直接从BigQuery查询云SQL实例(只读操作)。然后,您可以想象使用一个简单的INSERT ... SELECT (from Cloud SQL)...
进行简单的同步
您可以使用BigQuery scheduled queries计划此同步
这里的问题是您的数据位置,因为您在加拿大有1个Cloud SQL,在美国有另一个,您需要有2个数据集,每个地区一个,并执行相同的同步。
因此,如果您需要在所有数据之间执行查询,无论它们位于何处,都不能使用BigQuery来完成。您必须将所有数据放在同一地理位置(无论是在同一区域中,还是在美国(全美区域)或欧盟(全欧洲区域) ->中,因此我的问题只针对美国区域)
要使用BigQuery将数据从一个区域移动到另一个区域,可以使用transfer service
Deidentification
对于识别,您还可以使用BigQuery请求隐藏来自源的PII数据( Cloud SQL联合查询或BigQuery中已有的数据),并将结果保存在新表中。您还可以运行删除操作来删除临时BigQuery表中的纯文本PII数据(或使用temporary tables)
您还可以对此使用计划查询,或使用Workflow来编排所有操作
总之,对于这些操作,您可以原谅数据流和springboot应用程序,我确信您可以使用Cloud原生组件来实现这一点,效率更高,因此成本更低
https://stackoverflow.com/questions/67390074
复制相似问题