在构建任何软件应用程序时,选择正确的数据库至关重要。所有数据库在性能方面都有不同的优势和劣势,因此,针对您的特定用例和数据模型,决定哪个数据库的优势最大,劣势最小,是一项重要的决策。下面您将找到 Google BigQuery 和 M3 的关键概念、架构、功能、用例和定价模型的概述,以便您可以快速了解它们之间的比较。

本文的主要目的是比较 Google BigQuery 和 M3 在涉及 时间序列数据 的工作负载中的性能,而不是所有可能的用例。时间序列数据通常在数据库性能方面提出了独特的挑战。这是由于正在写入的大量数据以及访问该数据的查询模式。本文并非旨在说明哪个数据库更好;它只是提供了每个数据库的概述,以便您可以做出明智的决定。

Google BigQuery 与 M3 细分


 
数据库模型

数据仓库

时间序列数据库

架构

BigQuery 是 Google Cloud Platform 提供的完全托管、无服务器的数据仓库。它专为高性能分析而设计,并利用 Google 的基础设施进行数据处理。BigQuery 使用列式存储格式来实现快速查询,并支持标准 SQL。数据在 Google Cloud 区域内的多个可用区中自动分片和复制

M3 堆栈可以部署在本地或云端,使用 Kubernetes 等容器化技术,或作为 AWS 或 GCP 等平台上的托管服务

许可证

闭源

Apache 2.0

用例

商业分析、大规模数据处理、数据集成

监控、可观测性、物联网、实时分析、大规模指标处理

可扩展性

无服务器、PB 级数据仓库,可以处理海量数据,无需预先进行容量规划

水平可扩展,专为高可用性和大规模部署而设计

正在寻找最有效的入门方式?

无论您是在寻求成本节约、降低管理开销还是开源,InfluxDB 都能帮助您。

Google BigQuery 概述

Google BigQuery 是由 Google Cloud 开发的完全托管、无服务器数据仓库和分析平台。BigQuery 于 2011 年推出,旨在处理大规模数据处理和查询,使用户能够实时分析海量数据集。BigQuery 专注于性能、可扩展性和易用性,适用于广泛的数据分析用例,包括商业智能、日志分析和机器学习。

M3 概述

M3 是一个完全用 Go 编写的分布式时间序列数据库。它旨在收集大量监控时间序列数据,以水平可扩展的方式分发存储,并有效地利用硬件资源。M3 最初由 Uber 开发,作为 Prometheus 和 Graphite 的可扩展远程存储后端,后来开源供更广泛的使用。


Google BigQuery 用于时间序列数据

BigQuery 可用于存储和分析时间序列数据,尽管它更侧重于传统的数据仓库用例。对于需要低延迟响应时间的用例,BigQuery 可能会遇到困难

M3 用于时间序列数据

M3 专为时间序列数据而设计。它是一个分布式且可扩展的时间序列数据库,针对处理大量高分辨率数据点进行了优化,使其成为存储、查询和分析时间序列数据的理想解决方案。

M3 的架构侧重于提供快速高效的查询能力以及高摄取率,这对于处理时间序列数据至关重要。其水平可扩展性和高可用性确保它可以处理大规模部署的需求,并在数据量增长时保持性能。


Google BigQuery 关键概念

与 Google BigQuery 相关的一些重要概念包括

  • 项目:BigQuery 中的项目表示数据集、表和视图等资源的顶级容器。
  • 数据集:数据集是 BigQuery 中表、视图和其他数据资源的容器。
  • :表是 BigQuery 中的主要数据存储结构,由行和列组成。
  • 架构:架构定义表的结构,包括列名、数据类型和约束。

M3 关键概念

  • 时间序列压缩:M3 具有压缩时间序列数据的能力,从而显着节省内存和磁盘空间。它使用两种压缩算法:M3TSZ 和 protobuf 编码,以实现高效的数据压缩。
  • 分片:M3 使用分配给物理节点的虚拟分片。时间序列键哈希到一组固定的虚拟分片,从而实现水平扩展和无缝节点管理。
  • 一致性级别:M3 为读取和写入操作以及集群连接操作提供可变的一致性级别。写入一致性级别包括 One(单个节点成功)、Majority(大多数节点成功)和 All(所有节点成功)。读取一致性级别为 One,对应于从单个节点读取


Google BigQuery 架构

Google BigQuery 的架构构建在 Google 的分布式基础设施之上,专为高性能和可扩展性而设计。BigQuery 的核心使用名为 Capacitor 的列式存储格式,该格式可以实现高效的数据压缩和快速查询性能。数据自动分区并分布在多个存储节点上,从而提供高可用性和容错能力。BigQuery 的无服务器架构自动为查询和数据存储分配资源,无需用户管理基础设施或容量规划。

M3 架构

M3 设计为水平可扩展并处理高数据吞吐量。它使用 fileset 文件作为长期存储的主要单元,存储时间序列值的压缩流。在块时间窗口变得不可访问后,这些文件将刷新到磁盘。M3 具有提交日志,相当于其他数据库中的提交日志或预写日志,可确保数据完整性。客户端对等流负责从对等方获取块以进行引导。M3 还实现了缓存策略,通过确定哪些刷新块保留在内存中来优化高效读取。

免费时间序列数据库指南

获取对备选项和选择关键要求的全面审查。

Google BigQuery 功能

列式存储

BigQuery 的列式存储格式 Capacitor 实现了高效的数据压缩和快速查询性能,使其适用于大规模数据分析。

与 Google Cloud 集成

BigQuery 与其他 Google Cloud 服务(如 Cloud Storage、Dataflow 和 Pub/Sub)无缝集成,可以轻松地从各种来源摄取、处理和分析数据。

机器学习集成

BigQuery ML 使用户可以直接在 BigQuery 中创建和部署机器学习模型,从而简化了构建和部署机器学习应用程序的过程。

M3 功能

提交日志

M3 使用提交日志来确保数据完整性,为写入操作提供持久性。

对等流

M3 的客户端对等流从对等方获取数据块以进行引导,从而优化数据检索和分发。

缓存机制

M3 实现了各种缓存策略来有效地管理内存使用,将频繁访问的数据块保留在内存中以实现更快的读取。


Google BigQuery 用例

商业智能和报告

BigQuery 广泛用于商业智能和报告,使用户能够分析大量数据并生成洞察力以指导决策。其快速的查询性能以及与流行的 BI 工具(如 Google Data Studio 和 Tableau)的无缝集成使其成为此用例的理想解决方案。

机器学习和预测分析

BigQuery ML 使用户可以直接在 BigQuery 中创建和部署机器学习模型,从而简化了构建和部署机器学习应用程序的过程。BigQuery 的快速查询性能和对大规模数据处理的支持使其适用于预测分析用例。

数据仓库和 ETL

BigQuery 的分布式架构和列式存储格式使其成为数据仓库和 ETL(提取、转换、加载)工作流的绝佳选择。它与其他 Google Cloud 服务(如 Cloud Storage 和 Dataflow)的无缝集成简化了从各种来源摄取和处理数据的过程。

M3 用例

监控和可观测性

M3 特别适用于大规模监控和可观测性任务,因为它可以存储和管理由基础设施、应用程序和微服务生成的大量时间序列数据。组织可以使用 M3 来分析、可视化和检测从各种来源收集的指标中的异常情况,从而使他们能够识别潜在问题并优化其系统。

物联网和传感器数据

M3 可用于存储和处理物联网设备和传感器生成的大量时间序列数据。通过处理来自数百万个设备和传感器的数据,M3 可以为组织提供有关其连接设备的性能、使用模式和潜在问题的宝贵见解。此信息可用于优化、预测性维护和提高物联网系统的整体效率。

金融数据分析

金融机构可以使用 M3 来存储和分析与股票、债券、商品和其他金融工具相关的时间序列数据。通过提供快速高效的查询功能,M3 可以帮助分析师和交易员根据历史趋势、当前市场状况和潜在的未来发展做出更明智的决策。


Google BigQuery 定价模型

Google BigQuery 定价基于按需付费模式,费用由数据存储、查询和流式传输决定。BigQuery 定价主要有两个组成部分

  • 存储定价:存储成本基于 BigQuery 中存储的数据量。用户需要为活动存储和长期存储付费,长期存储的非频繁访问数据可享受折扣价。
  • 查询定价:查询成本基于查询期间处理的数据量。用户可以选择按需定价(按每次查询处理的数据付费)或固定费率定价(为一定量的查询容量提供固定的月度费用)。

M3 定价模型

M3 是一个开源数据库,可以免费使用,但您必须考虑管理基础设施和运行 M3 所用硬件的成本。Chronosphere 是 M3 与 Uber 的共同维护者,还提供以 M3 作为后端存储层的托管可观测性服务。