Cloud SQL 增量到 BigQuery

2024-04-03

我需要针对我正在研究的用例之一提供一些建议。

使用案例:

我们在 Cloud SQL 中拥有大约 5-10 个表的数据,其中一些被视为查找表,另一些则被视为事务性表。我们需要将其发送到 BigQuery,以生成 3-4 个表(扁平化、嵌套或非规范化),这些表将用于 Data Studio、Looker 等中的报告。

数据应增量处理,Cloud SQL 中的更改可能每 5 分钟发生一次,这意味着 BigQuery 报告应近乎实时地提供数据。如果可能的话,我们还应该维护数据更改的历史记录。

解决方案:

我们在 BigQuery 中保留了 3 层,因此来自 Cloud SQL 的数据来到第一层,然后在展平后我们将其保存到第二层(维护历史记录),然后对其进行处理以插入到第三层(报告)。The problem这种方法的缺点是它是为日常处理而开发的,无法帮助处理 Cloud SQL 中每 5 分钟的数据更改。

欢迎任何建议。

Note:-我们需要使用数据流、VM 或其他方式来进行一些逻辑处理,这意味着我们不能仅使用计划查询,因为我们不能使用查询来处理所有逻辑,但是可以使用视图和代码的混合。


这比您想象的更简单:BigQuery 可以直接从 Cloud SQL 中读取数据。

Docs:

  • https://cloud.google.com/bigquery/docs/cloud-sql-federated-queries https://cloud.google.com/bigquery/docs/cloud-sql-federated-queries

更多阅读:

  • https://medium.com/google-cloud/loading-mysql-backup-files-into-bigquery-straight-from-cloud-sql-d40a98281229 https://medium.com/google-cloud/loading-mysql-backup-files-into-bigquery-straight-from-cloud-sql-d40a98281229

因此,您所需要做的就是编写一个 MySQL 查询来查找过去 5 分钟内的所有更改。您可以从 BigQuery 中运行此查询 - 并通过一个查询将所有数据具体化到 BigQuery 中,例如:

INSERT INTO `dataset.table`

SELECT * 
FROM EXTERNAL_QUERY(
  'your.CloudSql.database'
  , 'SELECT * FROM users')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cloud SQL 增量到 BigQuery 的相关文章

随机推荐

  • 如何将 jsdom.jQueryify 与 jasmine-node 一起使用?

    是否可以使用 jsdom 的 jQueryify 功能来使用 jasmine node 我想做的是使用 NodeJS 来测试一些依赖于 DOM 是否存在的 JavaScript 这是我尝试过的简化案例 当我运行脚本时 茉莉花节点识别规范 但
  • 如何以编程方式在 xml 配置文件中的某些位置添加节点

    我们的软件安装在 50 台客户端 PC 上 软件从 xml 配置文件中选取值 每个客户端在配置文件中都有自己的个人节点值 真 假 现在我们发布了新版本的软件 在 xml 配置文件中添加了更多节点 我们如何将新节点添加到客户端现有的配置文件
  • TaskDescription 的主要颜色应该是不透明的 Android 6.0

    我的代码是 if Build VERSION SDK INT gt Build VERSION CODES LOLLIPOP Bitmap bm BitmapFactory decodeResource context getResourc
  • 查找与布尔查询匹配的大型 int 数组子集的算法

    假设我有一个 M 32 位整数的大数组 其中每个值的设置不超过 N 位 现在我想返回与查询 Target AND Value Target 匹配的子集 即目标位出现在数组值中设置的值 暴力破解很简单 只需迭代数组并提取其中 target v
  • Unison:仅在一个方向上同步

    如果我有文件夹 A 和 B 是否可以将新文件从 A 同步到 B 并且不删除 B 中的文件而删除 A 中的文件 也就是说 我想用B作为任何文件的大容器 包括我曾经从A同步然后删除的文件 我认为这被认为是一种 单向同步 我了解您对 Unison
  • 在 eclipse 中使用 java.io 库,以便 FileInputStream 可以读取 dat 文件

    Goal Print the data from a dat file to the console using Eclipse 长期目标 我可以将 dat 文件传递 给可执行文件 它会创建一个带有格式化数据的新 txt 文件 The da
  • jQuery Dragenter 或 Dragover 包含子项

    我目前正在编写一个上传脚本 当然它具有拖放功能 However当我将文件拖到我的元素上时 我试图让它工作 它添加了类拖累然而 因为我的元素有孩子 所以它会不断地触发 因为它进入和离开元素 我想知道什么我怎样才能扩展 dragenter dr
  • 在 Visual Studio 中查看 var 的类型

    有没有办法查看 a 的类型var在 Visual Studio 2013 代码编辑器中 当我有一个疯狂的时候linq查询 很高兴看到结果类型是什么 我不想更换var关键字与实际类型 我只想看看它是什么 还有一个键盘快捷键会向您显示 将光标放
  • Java GUI repaint() 问题?

    我有一个 JFrame 该 JFrame 包含一个 JButton 我单击 JButton 然后创建了 10 个 JTextField 问题 在通过调整窗口大小 强制重新绘制 之前我看不到它们 只有这样我才能看到创建的 JTextField
  • 安装补丁 19 后,Oracle Forms 6i 在启动时崩溃并显示 0xC0000005 [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPD 0xC0000005 是STATUS ACCESS VIOLATION 在 winnt h 中定义 这意味着应用程序尝试访问它无法
  • Python super 和设置父类属性

    我在 Python super 以及继承和属性方面遇到了一个非常奇怪的问题 首先 代码 usr bin env python3 import pyglet import pygame class Sprite pyglet sprite S
  • 找到字符串中最长的子串

    我想找到字符串中最长的重复字符序列 ex aabbccc gt ccc aabbbddccdddd gt dddd etc 在第一个示例中 ccc 是最长的序列 因为 c 重复了 3 次 在第二个示例中 dddd 是最长的序列 因为 d 重
  • 如何返回许多 Promise 并在执行其他操作之前等待所有 Promise

    我有一个循环 它调用一个异步执行操作的方法 这个循环可以多次调用该方法 在这个循环之后 我有另一个循环 仅当所有异步工作完成时才需要执行 所以这说明了我想要的 for i 0 i lt 5 i doSomeAsyncStuff for i
  • 使用函数计算 C# 中数组之间的欧几里德距离

    我想计算用户输入的点之间的欧几里德距离 如下所示 static void Main string args int numtest int Parse Console ReadLine int points new int 10 2 for
  • Angular 2 - 打开/关闭默认引导模式

    我不想使用Angular2 引导程序 https github com shlomiassaf angular2 modal or ng2 bs3 模态 https github com dougludlow ng2 bs3 modal正如
  • 获取 Autofac 中接口的所有已注册实现

    我需要从IComponentContext 已注册的列表Type是实现特定接口的 我不需要类型的实际实例 而是想要一个列表Type其中我could获取实例 我想使用此列表在消息总线上生成订阅 如何在 Autofac 中获取接口的所有已注册实
  • 单击按钮获取数据表行数据

    我有一个问题this https plnkr co edit cr4VDR1AZih8WiNxmKg6 p preview项目 我正在尝试创建一个 CRUD 菜单 当点击 编辑 按钮时 该行的数据将被传输到引导模式 并且用户可以从那里进行编
  • 如何访问 PHP 中多选下拉列表中选择的值?

    我在用Jquery 多选小部件 http www erichynds com jquery jquery ui multiselect widget 有一个带有多选选项的下拉列表框 我正在使用 MySql 数据库中的数据填充下拉列表 我无法
  • Google 身份服务 - 如何从经过身份验证的用户获取个人资料/电子邮件信息

    我正在移植一些现有的 js 代码 通过谷歌云平台进行身份验证 因为它们正在迁移到一组新的库 迁移指南 https developers google com identity oauth2 web guides migration to g
  • Cloud SQL 增量到 BigQuery

    我需要针对我正在研究的用例之一提供一些建议 使用案例 我们在 Cloud SQL 中拥有大约 5 10 个表的数据 其中一些被视为查找表 另一些则被视为事务性表 我们需要将其发送到 BigQuery 以生成 3 4 个表 扁平化 嵌套或非规