数据与智能

数据科学家优化拼字查询的8种方法

为高效的工作日做好准备

有些数据格式是柱状的。这意味着它们将信息存储在列或行中。它们很受欢迎,因为它们可以比基于行的查询更容易地用于某些类型的查询。Parquet支持并行查询处理,这意味着它可以将数据拆分为几个文件,以便一次读入多个处理器。这允许您通过将数据分割成块来更快地处理非常大的数据集,从而可以同时进行处理。在本文中,我们将讨论8种使用Parquet优化查询的方法。

1)使用镶木地板和分隔的列

在生成分区表时,请确保在表的模式定义中包含希望作为分区列的列。如果使用正确,对数据进行分区可以显著提高许多操作的性能。例如,您可以使用这种技术根据某些标准对相关记录进行分组,并确保只从相关分区读取数据,而不是从所有分区读取数据,从而加快应用程序的加载时间和提高效率。

2)使用与数据加载速度匹配的拼块大小

当您以Parquet格式存储数据时,正确选择每个块的记录数量是很重要的。例如,如果您创建了一个很大的块大小(例如,100万条记录),将会有更多的文件碎片,这会影响I/O速度。

3)按列存储

当以Parquet格式保存数据时,请确保以列模式包含要存储的列。对列的一个子集进行操作的查询将不需要加载任何其他列,并将节省磁盘空间和内存使用。

4)不要使用不必要的栏目

数据智能——大数据的未来
大数据的未来

通过一些指导,您可以创建适合组织需求的数据平台,并从数据资本中获得最大回报。

获取指南

在读取Parquet文件时,请确保只包含查询所需的列。在某些情况下,这可能意味着从文件中读取每一列,然后将它们存储在另一个位置,以便进一步分析或处理。

5)使用支持数据类型的拼字编码

Parquet支持广泛的数据类型,因此要确保正确地表示数据。如果你使用布尔值(例如,true或false), Parquet格式将它们序列化为字符串(例如,“true”或“false”)。另一方面,“位”编码可用于有效地处理由0和1组成的字符串。如果您理解布尔值实际上存储为0和1,您可以使用“比特”编码。这种优化将减少网络使用,因为需要通过网络发送的字节更少。

6)对时间序列数据使用字典编码

字典编码是一种在压缩数据中存储唯一值及其频率的压缩类型。当请求一个值时,可以快速查阅字典以发现它的频率,这在处理时间戳等高基数列时非常有用。

7)对大型二进制数据使用列交换编码

在处理二进制数据时,使用“BLOBS”编码或“BYTES”。这对于大的二进制数据很有好处,因为它将被压缩并存储在彼此旁边。这可以帮助您在查询期间使用内存。

8)尽可能使用不同的数据类型

在Parquet文件中,单个列中的不同数据类型可能包含不同的数据类型。这意味着每行有多个不同类型的值,而不是每行只有一个值。这是有益的,因为它们减少了存储其中存储的最频繁类型的数据所需的空间量,同时仍然允许您使用更大的种类。

结论:

Parquet是一种柱状数据存储格式,用于更好地组织和查询大型数据集。通过遵循以下几个简单的标准,您可以提高查询的性能并使用更少的资源。

留下回复

你的电邮地址将不会公布。必填字段已标记

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据

大卫•卡拉汉解决方案架构师

作为一名Perficient的解决方案架构师,我拥有20年的开发经验,目前我正在实践Hadoop/Spark,区块链和云,在Java, Scala和Go中编码。我获得了Hadoop, Cassandra, Spark, AWS, MongoDB和Pentaho的认证并广泛使用。最近,我一直在将集成的区块链(特别是Hyperledger和Ethereum)和大数据解决方案引入云中,重点是集成现代数据产品,如HBase, Cassandra和Neo4J作为区块链外存储库。

更多来自作者

关注我们
推特 Linkedin 脸谱网 Youtube Instagram