You are currently viewing Avro 与 Parquet:哪种文件格式适合您的数据?

Avro 与 Parquet:哪种文件格式适合您的数据?

由于目前存在的问题,管理大型数据集可能很困难。一个常见的问题是移动数据。  为此,数据需要采用良好压缩的格式。 

数据也应该是可搜索的,并且其格式可以保持记录和字段之间的关系。

有多种格式可供选择。逗号分隔值文件(CSV) 是一种久经考验的格式,适用于任何语言或平台,但它缺少字典或数据类型,因此您需要自己编写。即便如此,CSV 对于大型数据集通常也很笨拙。

JSON 解决了 CSV 的许多缺点,但它不是为大规模数据存储而设计的。文件很大,搜索它们仍然很慢。 

幸运的是,有为大型数据集设计的数据格式。两种最流行的格式是 Apache 的 Avro 和 Parquet。这两个都是作为 Hadoop 项目的一部分创建的,但是它们以非常不同的方式处理数据。让我们看看他们的相似之处以及如何权衡取舍。 

 

什么是 Avro?

Avro自称是一个数据序列化系统。它是一种用于序列化和交换数据的开源数据格式。即使它是 Hadoop 项目的一部分,您也可以在任何应用程序中使用它,无论有无 Hadoop 库。Avro 的序列化适用于数据文件和消息。 

Avro 是基于行的,因此它将每条记录的所有字段存储在一起。这使其成为需要一起访问记录的所有字段的情况的最佳选择。 

Avro 以二进制格式存储数据,并将数据定义存储在 JSON 字典中。它将数据和模式放在一个文件或消息中,因此程序处理数据所需的一切都在一个地方。与 Protocol Buffers 等类似系统不同,Avro 客户端不需要生成代码来读取消息。这使得 Avro 成为脚本语言的绝佳选择。 

Avro 的主要优势之一是通过一种称为模式演化的机制对模式更改的强大支持。此功能使 Avro 能够优雅地处理丢失的、新的和更改的字段,从而使 Avro 数据向后和向前兼容。 

当 Avro 解码数据时,它可以使用两种不同的模式。一个来自编码数据,反映出版商编码的内容,另一个来自读者,表明他们的期望。Avro 将计算出差异,以便读者获得可用的结果。 

Avro 支持基本数据类型(布尔、整数、长整数和字符串)、复杂数据类型(枚举、映射、数组和用户定义的记录)和嵌套数据类型。 

数据格式具有适用于 Java、Python、Ruby、C、C++、Perl 和 PHP 的 API。一种语言序列化的数据可以被另一种语言使用,Avro 的 C 接口意味着它可以从许多其他语言中调用

Avro 用于什么?

Avro 的两个主要用途是数据序列化远程过程调用。 

Avro 的速度、灵活性和紧凑的尺寸使其成为存储数据和通过 Kafka 等消息传递系统传输数据的流行选择。在这两种情况下,程序都可以快速编码和解码数据,同时轻松管理版本差异。因此,使用 Avro 部署新代码版本比使用 CSV 或 JSON 等原始格式更容易。  您还可以将 Avro 与gRPC等 RPC 服务一起使用,并将其强大的版本控制系统与远程过程一起使用。


SQream Nano – 边缘数据管理和分析

我们的软件定义 GPU 加速数据仓库 SQream DB 特别适用于边缘,其关键设计元素使其对机器数据具有吸引力:

  • 每秒数百万个数据点——高达 14MHz 的采样率
  • 将机器数据直接输出到 SQream DB
  • SQL 访问
  • 针对时间序列数据调整的列式引擎
  • 快速即席查询、聚合、连接、自定义函数 (UDF)
  • 近乎实时的 SQL 性能
  • 通过 ODBC、JDBC、Python、CL 与流行工具集成洞察力和 BI
 

SQream Nano将 SQream DB 的强大功能与在边缘计算中前所未有的超快速分析功能结合在一个低调、高能效的 NVIDIA Jetson Nano 板上。

SQream Nano 可以监控数十亿个日常事件,将它们关联起来并进行预测分析。当与 C2(命令和控制)系统结合使用时,SQream Nano 可以促进主动措施,例如更改时间表、要求主动维护或切换阀门和执行器等元件的模式。

所有数据都保持本地、安全和持久。SQream Nano 将数据存储在本地以进行近乎实时的监控和分析,并且可以将数据同步到云端以进行历史趋势分析——预先聚合、计算和压缩。因此,通信要求被最小化,这特别适合 NB-IoT。

SQream Nano 是命令和控制周期的关键推动者。当部署在边缘时,SQream Nano 可以接收实时数据流,并通过与 ICS 和 PLC 系统通信来近乎实时地响应变化。SQream Nano 还为最终用户启用临时分析和仪表板。

混合架构——数据中心和边缘

在现有数据中心实施 SQream Nano 可以在数据中心的大型数据集上训练预测模型,并在边缘轻松部署它们。

在 GPU 加速硬件上运行边缘预测模型意味着无需传输数据。GPU 加速的 SQream Nano 的大数据功能可在更长的分析时间范围内产生更准确的预测。

世界各地的公司已经在使用物联网数据分析来增加收入、优化运营、降低风险和简化运营成本。针对物联网数据分析的现有优势,SQream Nano 为 NB-IoT 提供优化和降低的网络吞吐量,提高数据安全性和可靠性,并进一步降低部署分析解决方案的成本。

发表回复