使用 BigQuery Graph 和 Spanner Graph
本文档通过比较 BigQuery Graph 和 Spanner Graph,帮助您确定要使用哪种图解决方案。
此比较仅作为建议,并非绝对标准。 BigQuery Graph 和 Spanner Graph 在功能方面有很大程度的重叠,用户应根据自己的工作负载需求确定要使用哪个功能。
何时使用 BigQuery Graph 和 Spanner Graph
BigQuery Graph 和 Spanner Graph 适用于不同类型的图工作负载。BigQuery Graph 适用于大规模深度分析,而 Spanner Graph 适用于实时操作。
BigQuery 图
BigQuery Graph 经过优化,可对大型图运行复杂的查询。您可以分析全球模式、识别历史趋势,并揭示海量数据集中的隐藏关系。
其技术特点包括:大规模优化性能、并行处理、针对图的很大一部分进行复杂查询、密集计算和复杂聚合。
常见用例包括下列各项:
- 离线欺诈检测:在客户图谱中,通过共享相同电子邮件地址、手机号码或地址的连接,在整个网络中查找与已知欺诈者关联的其他可疑用户。如需观看有关欺诈检测的教程,请参阅 Spanner 和 BigQuery:实时欺诈防御盾。
- 供应链优化:构建物料清单图,用于表示最终产品及其组件之间的关系,以便进行库存规划。通过分析所有产品线中从顶级产品到其根组件的物料,计算产品交付日期并了解物料可用性。
- 客户 360 细分:构建客户 360 图,了解产品订阅、转化和客户流失的客户转化历程。您可以使用此图表来确定客户流失的原因、识别使用情况模式,并使用该图表在整个受众群体中进行客户细分和受众群体定位。
Spanner Graph
Spanner Graph 适用于实时操作。它针对以下应用进行了优化:需要立即执行涉及少量图元素的 k 跃点查询、在毫秒内检测欺诈行为、执行谱系跟踪记录以进行身份和依赖项验证,以及提供实时推荐。
其技术特点包括延迟时间可预测且抖动最小、每秒查询次数 (QPS) 可随 Spanner 节点数量线性扩缩,以及近乎无限的扩缩能力。它还具有内置的图存储功能,支持节点和边表交织、始终可用的特性、全局一致性,以及从单个图节点或一组图节点开始的点查找和多跳查询。
常见用例包括下列各项:
- 实时欺诈检测:在几毫秒内,将信用卡刷卡操作与已知欺诈设备和账号的图表进行对比。
- 自主网络运营:构建网络的数字孪生体,以实现实时性能监控和优化。
- 实体解析:构建关联身份的集群,作为来自不同个人身份信息(电子邮件、手机、Vemo ID)的真实来源。在投放广告之前,使用规范个人资料进行身份查找、执行实时欺诈检测,以及训练特征存储区。
BigQuery Graph 和 Spanner Graph 如何协同工作
BigQuery Graph 和 Spanner Graph 协同工作,提供全面的解决方案。例如,在客户 360 度视图使用情形中:
- 实时数据分析:客户服务代理使用 Spanner Graph 根据实时购买和配送统计信息来处理用户关于配送错误产品的投诉。
- 复制或查询:您可以使用 Spanner 更改流将数据从 Spanner 复制到 BigQuery,而无需复杂的提取、转换和加载 (ETL) 流程;也可以使用 BigQuery 联合查询直接从 BigQuery 查询 Spanner 数据。
- 分析模式:数据科学家使用 BigQuery 图来识别同一数据中的“客户流失热点”,以便将客户标记为“有流失风险”。
- 反馈环:通过反向提取、转换和加载 (ETL) 支持,将“有流失风险”标签推送到 Spanner Graph 中,以便为相应客户生成优惠券代码,防止客户流失。
在 BigQuery Graph 与 Spanner Graph 之间移动数据
您可以在 Spanner Graph 和 BigQuery Graph 之间移动数据,以满足工作负载要求:
正向 ETL:如需将数据从 Spanner 迁移到 BigQuery 以进行分析查询,请使用 Dataflow 模板。
反向 ETL:虽然您可以直接从 BigQuery Graph 查询 Spanner 数据,但在某些情况下,您可能需要将 BigQuery 数据引入 Spanner Graph。使用
EXPORT DATASQL 语句。如需了解详情,请参阅了解反向 ETL 流水线。
特性比较
下表详细列出了各项功能以及最适合使用这些功能的 Google 产品:
| 功能 | BigQuery 图(离线/批处理) | Spanner Graph(在线/实时) |
|---|---|---|
| 图表模型、查询和可视化 | 统一的图建模和图查询语言,全部由 GoogleSQL(ISO SQL 标准的一部分)提供支持。用于图表可视化的相同界面。 | 统一的图建模和图查询语言,全部由 GoogleSQL(ISO SQL 标准的一部分)提供支持。用于图表可视化的相同界面。 |
| 主要工作负载 | 离线(批量):对海量数据集进行汇总。 | 在线(实时):大量低延迟读/写。 |
| 查询延迟时间 | 几秒到几小时。针对扫描 TB/PB 级数据进行了优化。 | 从毫秒到秒。对于面向用户的应用至关重要。 |
| 查询句式 | 全局或整个图表:“哪些人的‘人脉圈覆盖人数’超过 5,000 人?” | 本地或社区:“谁是我的朋友的朋友,但不在我的直接圈子里?” |
| 发展壮大 | PB 级、近乎无限,针对大规模历史数据进行了优化。 | 可横向伸缩,规模近乎无限,针对热门数据进行了优化。 |
| 数据新鲜度 | 近乎实时或批量。可以访问来自不同来源的数据(例如,使用 Data Boost for Spanner、Bigtable、Cloud Storage 或 Amazon S3 访问 Spanner Graph 数据)。 | 实时、强一致性。 |
| 数据输入 | 数据湖、历史日志、已归档的交易数据。 | 实时应用流、用户互动。 |
| 数据移动 |
使用预构建的模板(批量、流式)将 Spanner 数据提取、转换和加载 (ETL) 到 BigQuery 中(正向)。
使用 EXPORT_DATA 将 BigQuery 数据迁移到 Spanner(反向 ETL)。
使用外部架构进行查询联合(零 ETL)。 |
使用预构建的模板(批量、流式)将 Spanner 数据提取、转换和加载 (ETL) 到 BigQuery 中(正向)。
使用 EXPORT_DATA 将 BigQuery 数据迁移到 Spanner(反向 ETL)。
使用外部架构进行查询联合(零 ETL)。 |
后续步骤
- 详细了解 BigQuery Graph。
- 详细了解 Spanner Graph。