美文网首页
Impala schema基本设计原则

Impala schema基本设计原则

作者: 远o_O | 来源:发表于2018-07-04 15:53 被阅读35次

在进行任何概念验证工作,移植练习或部署到生产之前,请将这些指南用作check list。

1、Prefer binary file formats over text-based formats.

  • 要节省空间并提高内存使用率和查询性能,请对任何大型或集中查询的表使用二进制文件格式。 Parquet文件格式对于数据仓库式分析查询最有效。 Avro是Impala支持的另一种二进制文件格式,您可能已将其作为Hadoop ETL管道的一部分。
  • 虽然Impala可以使用RCFile和SequenceFile文件格式创建和查询表,但由于这些格式的基于文本的特性,这些表相对较笨,并且由于其面向行的布局而未针对数据仓库样式查询进行优化。 Impala不支持对具有这些文件格式的表执行INSERT操作。
  • Guidelines
    • 1、对于大型,性能关键表的高效且可扩展的格式,请使用Parquet文件格式。
    • 2、为了在ETL过程中以其他Hadoop组件也可以使用的格式提供中间数据,Avro是一个合理的选择。
    • 3、为方便导入原始数据,请使用文本表而不是RCFile或SequenceFile,并在ETL过程的后续阶段转换为Parquet。

2、Use Snappy compression where practical.

Snappy压缩涉及较低的CPU开销以进行解压缩,同时仍可节省大量空间。如果您可以选择压缩编解码器(例如Parquet和Avro文件格式),请使用Snappy压缩,除非您找到使用其他编解码器的令人信服的理由。

3、Prefer numeric types over strings.

如果您有可以视为字符串或数字的数值(例如分区键列的YEAR,MONTH和DAY),请将它们定义为最小的适用整数类型。例如,YEAR可以是SMALLINT,MONTH和DAY可以是TINYINT。虽然您可能没有看到分区表或文本文件在磁盘上的布局方式有任何差异,但使用数字类型将以二进制格式(如Parquet)节省空间,并在执行查询时节省内存,尤其是资源密集型查询(如连接).

4、Partition, but don't over-partition

您可以将Parquet块大小减小到128 MB或64 MB,以增加每个分区的文件数并提高并行度。但也要考虑降低分区级别,以便分析查询有足够的数据可以使用。

5、Always compute stats after loading data.

  • Impala广泛使用有关整个表和每列中的数据的统计信息,以帮助规划资源密集型操作,例如连接查询和插入分区的Parquet表。由于此信息仅在加载数据后可用,因此在加载或替换表或分区中的数据后,在表上运行COMPUTE STATS语句。
  • 具有准确的统计信息可以区分成功的操作,或者由于内存不足或超时而失败的操作。遇到性能或容量问题时,请始终使用SHOW STATS语句检查查询中的所有表是否存在统计信息并保持最新。
  • 在执行连接查询时,Impala会查询每个连接表的统计信息,以确定它们的相对大小并估计每个连接阶段中生成的行数。在对Parquet表执行INSERT时,Impala会查询源表的统计信息,以确定如何分配为每个分区构建数据文件的工作。

6、Verify sensible execution plans with EXPLAIN and SUMMARY.(使用EXPLAIN和SUMMARY验证合理的执行计划。)

  • 在执行资源密集型查询之前,请使用EXPLAIN语句概述Impala如何并行化查询并分发工作。如果您发现查询计划效率低下,则可以执行调整步骤,例如更改文件格式,使用分区表,运行COMPUTE STATS语句或添加查询提示。有关所有这些技术的信息,请参阅Tuning Impala for Performance.

相关文章

  • Impala schema基本设计原则

    在进行任何概念验证工作,移植练习或部署到生产之前,请将这些指南用作check list。 1、Prefer bin...

  • MongoDB 3.4 学习笔记 (三):非关系数据库的 Sch

    1. 非关系数据库的 Schema 1. 非关系数据库的 Schema1.1. Schema 设计原则1.1.1....

  • mongo学习笔记

    1. 时序数据Schema (以分钟为单位) 2. 原子操作原则 3. 数据库设计原则

  • 设计模式原则

    设计模式的基本原则 设计模式的基本原则非常重要,只要真正深入地理解了设计原则,很多设计模式其实就是原则的应用而已,...

  • 《高性能Mysql》- 推荐的DDL设计

    整体原则是根据系统将要进行的查询来设计schema。 一、选择合适的数据类型 原则是选择够用的最小数据类型,好处是...

  • 架构师之路3-代码开发稳定之道

    设计架构基本原则 设计原则继承面向对象的设计思想,遵守设计模式基本原则 框架开发与项目开发相分离框架的开发任务是维...

  • 2021-08-05

    产品设计的基本原则。 产品设计的基本原则,就是产品设计的语法,用来把需求翻译成产品。 1、设计5原则 人们把现实生...

  • 个人资料Schema设计和参数校验

    Schema设计 参数校验

  • iOS面试资料(一)

    iOS面试题 [toc] 设计基本原则 简述六大设计基本原则(也称 SOLID 五大原则) 单一职责原则 (SRP...

  • 深入理解设计模式的设计原则

    设计原则 设计原则,是设计模式的内功心法,基本所有的设计模式都是基于设计原则进行的具体化,如果说设计模式是如何操作...

网友评论

      本文标题:Impala schema基本设计原则

      本文链接:https://www.haomeiwen.com/subject/gvbeuftx.html