【前言】作为中国的 “Fivetran/Airbyte”, Tapdata 是一个以低延迟数据移动为核心优势构建的现代数据平台,内置 60+ 数据连接器,拥有稳定的实时采集和传输能力、秒级响应的数据实时计算能力、稳定易用的数据实时服务能力,以及低代码可视化操作等。典型用例包括数据库到数据库的复制、将数据引入数据仓库或数据湖,以及通用 ETL 处理等。
引用
随着 Tapdata Connector 的不断增长,我们最新推出《Tapdata Connector 实用指南》系列内容,以文字解析辅以视频演示,还原技术实现细节,模拟实际技术及应用场景需求,提供可以“收藏跟练”的实用专栏。本期实用指南以 SQL Server → BigQuery 为例,演示数据入仓场景下,如何将数据实时同步到 BigQuery。
数据规模仍在持续扩大的今天,为了从中获得可操作的洞察力,进一步实现数据分析策略的现代化转型,越来越多的企业开始把目光投注到 BigQuery 之上,希望通过 BigQuery 来运行大规模关键任务应用,从而达到优化运营、改善客户体验并降低总体拥有成本的目的。
作为自带 ETL 的实时数据平台,我们也看到了很多从传统内部数据仓库向 BigQuery 的数据迁移需求。
一、BigQuery 的云数仓优势
作为一款由 Google Cloud 提供的云原生企业级数据仓库,BigQuery 借助 Google 基础架构的强大处理能力,可以实现海量数据超快速 SQL 查询,以及对 PB 级数据进行安全并可扩展的分析。同时也因其天然具备的无服务器架构、低成本等特性,备受数据分析师和数据工程师的青睐,在数据存储和处理上表现出更出色的便利性。
BigQuery 在企业中通常用于存储来自多个系统的历史与最新数据,作为整体数据集成策略的一部分,也常作为既有数据库的补充存在。其优势在于:
- 在不影响线上业务的情况下进行快速分析:BigQuery 专为快速高效的分析而设计, 通过在 BigQuery 中创建数据的副本, 可以针对该副本执行复杂的分析查询, 而不会影响线上业务。
- 数据集中存储, 提高分析效率:对于分析师而言,使用多个平台耗时费力,如果将来自多个系统的数据组合到一个集中式数据仓库中,可以有效减少这些成本。
- 安全性保障:可以控制对加密项目或数据集的访问,并实施身份访问管理。
- 可扩展性:支持根据公司的规模、性能和成本要求定制数据存储。
- 友好兼容:作为 Google Cloud 的一部分,它与 Google 系产品更兼容,对相关用户更友好。
为了实现上述优势,我们需要首先实现数据向 BigQuery 的同步。
二、SQLServer → BigQuery 的数据入仓任务
点击查看完整演示
(*本演示视频版本为 Tapdata 本地部署版本)
版本指路:
点击登录 Tapdata Cloud
申请试用 Tapdata 本地部署版
BigQuery 准备工作
- 登录 Google Cloud 凭据页面
- 创建服务账号,该账号将用于后续的身份验证。
a. 在页面顶部,单击创建凭据 > 服务账号。
b. 在服务账号详情区域,填写服务账号的名称、ID 和说明信息,单击创建并继续。
c. 在角色下拉框中输入并选中 BigQuery Admin,单击页面底部的完成。
- 为服务账号创建认证密钥。
a. 在跳转到的凭据页面,单击页面下方刚创建的服务账号。
b. 在密钥标签页,单击添加密钥 > 创建新密钥。
c. 在弹出的对话框中,选择密钥类型为 JSON,然后单击创建。
d. 操作完成后密钥文件将自动下载保存至您的电脑,为保障账户安全性,请妥善保管密钥文件。
e. 登录 Google Cloud 控制台,创建数据集和表,如已存在可跳过本步骤。
i. 创建 BigQuery 数据集(*为保障 Tapdata Cloud 正常读取到数据集信息,创建数据集时,选择位置类型为多区域)
ii. 创建表
操作流程详解(Tapdata Cloud)
- 默认已完成 Tapdata Cloud 账号注册及 Agent 部署
- 确保 Tapdata Agent 所属机器可访问 Google 云服务,例如可将 Agent 安装至海外服务器。
② 创建数据源 SQL Server 的连接
在 Tapdata Cloud 连接管理菜单栏,点击【创建连接】按钮, 在弹出的窗口中选择 SQL Server 数据库,并点击确定。
参考右侧【连接配置帮助】,完成连接创建:
③ 创建数据目标 BigQuery 的连接
- 在 Tapdata Cloud 连接管理右侧菜单栏,点击【创建连接】按钮,在弹出的窗口中选择 BigQuery,并点击确定
- 根据已获取的服务账号,在配置中输入 Google Cloud 相关信息,详细说明如下:
- 连接名称:填写具有业务意义的独有名称。
- 连接类型:目前仅支持作为目标。
- 访问账号(JSON):用文本编辑器打开您在准备工作中下载的密钥文件,将其复制粘贴进该文本框中。
- 数据集 ID:选择 BigQuery 中已有的数据集。(输入服务账号后, 即可列出全部数据集)
- agent 设置:选择平台自动分配,如有多个 Agent,请手动指定可访问 Google 云服务的 Agent。
- 单击连接测试,测试通过后单击保存。(*如提示连接测试失败,可根据页面提示进行修复)
④ 新建并运行 SQL Server 到 BigQuery 的同步任务
三、Why Tapdata?
借助 Tapdata 出色的实时数据能力和广泛的数据源支持,可以在几分钟内完成从源库到 BigQuery 包括全量、增量等在内的多重数据同步任务。
基于 BigQuery 特性,Tapdata 做出了哪些针对性调整
在开发过程中,Tapdata 发现 BigQuery 存在如下三点不同于传统数据库的特征:
- 如使用 JDBC 进行数据的写入与更新,则性能较差,无法满足实际使用要求;
- 如使用 StreamAPI 进行数据写入,虽然速度较快,但写入的数据在一段时间内无法更新;
- 一些数据操作存在 QPS 限制,无法像传统数据库一样随意对数据进行写入。
为此,Tapdata 选择将 Stream API 与 Merge API 联合使用,既满足了数据高性能写入的需要,又成功将延迟保持在可控范围内,具体实现逻辑如下:
- 在数据全量写入阶段,由于只存在数据的写入,没有变更与删除操作,因此直接使用 Stream API 进行数据导入。
- 在数据增量阶段,先将增量事件写入一张临时表,并按照一定的时间间隔,将临时表与全量的数据表通过一个 SQL 进行批量 Merge,完成更新与删除的同步。
- 两个阶段的 Merge 操作,第一次进行时,强制等待时间为 30min,以避免触发 Stream API 写入的数据无法更新的限制,之后的 Merge 操作时间可以配置,这个时间即为增量的同步延迟时间,一般配置在 5min 以内。
Tapdata 有哪些优势?
此外,对于数据同步任务而言,Tapdata 同时兼具如下优势:
- 内置 60+ 数据连接器,稳定的实时采集和传输能力
以实时的方式从各个数据来源,包括数据库、API、队列、物联网等数据提供者采集或同步最新的数据变化。支持多源异构数据双向同步,自动映射关系型到非关系型。一键实现实时捕获,毫秒内更新。已内置 60+连接器且不断拓展中,覆盖大部分主流的数据库和类型,并支持您自定义数据源。 - 具有强可扩展性的 PDK 架构
- 小时快速对接 SaaS API 系统;16 小时快速对接数据库系统。
- 对源库几乎无影响
基于自研的 CDC 日志解析技术,0入侵实时采集数据,对源库几乎无影响。 - 全链路实时
基于 Pipeline 流式数据处理,以应对基于单条数据记录的即时处理需求,如数据库 CDC、消息、IoT 事件等。不同于传统 ETL,每一条新产生并进入到平台的数据,会在秒级范围被响应,计算,处理并写入到目标表中。同时提供了基于时间窗的统计分析能力,适用于实时分析场景。 - 数据一致性保障
通过多种自研技术,保障目标端数据与源数据的高一致性,并支持通过多种方式完成一致性校验,保障生产要求。 - 可视化任务运行监控和告警
包含 20+ 可观测性指标,包括全量同步进度、增量同步延迟等,能够实时监控在运行任务的最新运行状态、日志信息等,支持任务告警。
【相关阅读】