前言
在表的分类中,星环关系型分析引擎Inceptor以及分布式分析型数据库ArgoDB在针对不同的业务场景中提供了不同的表类型。
用户在建表的时候结尾stored as 处可以直接指定表类型,如果不进行指定则默认为TEXT表,那星环产品都可以存储哪些类型的表以及这些表分别是用在什么场景下呢?
本篇文章将为读者介绍星环产品Inceptor以及ArgoDB有哪些可以存储的表格式,以及不同表格式对应的能力。希望可以对读者在业务场景中表格式的选择有所帮助。
星环产品可存储的表格式 | 概览
表格式 | 功能及定位 |
---|---|
TEXTFILE | TEXT 表是文本格式的表,是默认的表格式。 在数据量大的情况下,TEXT表的统计和查询性能都比较差;TEXT表也不支持事务处理,所以通常作为外表使用,用于中转,将文本文件中的原始数据导入星环Inceptor或ArgoDB中。 |
ORC/ORC_TRANSACTION | 除了text表以外,比较常用的是ORC表以及TORC表: - ORC表在全量运算、跑批分析下的场景性能很好,有3-7倍的压缩率,压缩后再做运算就会快很多; - 如果说使用者需要进行单条数据的插入、删除、以及更新等事务操作,则需要用到ORC事务表,也就是TORC,使用前输入指令(SET transaction.type = inceptor; 或SET transaction.type = holodesk;)开启事务模式即可,但是加入事务后跑批性能会下降。 |
CSVFILE | CSV 表的数据来源是 CSV 文件。CSV 文件是纯文本文件,文件中包含数据以及分隔符。和 TEXT 表相似,CSV 表最常见的使用场景是用于建外表,将 CSV 文件中的数据导入 Inceptor或ArgoDB,星环科技不建议在任何计算场景中使用 CSV 表。计算时,应该总是将 CSV 表中的数据用 INSERT … SELECT 语句插入 ORC 或者 Holodesk 表。 |
HOLODESK | Holodesk表是一张内存闪存表,使用这张表的话底层数据存储最好是使用ssd,闪存介质会比普通的机械硬盘快很多。因此对于海量数据下的OLAP高性能分析查询等场景将具有非常强的处理能力,并且,数据存储于Holodesk表中也可以提高交互式分析中即时查询效率以及保证扩展性与稳定性。 极力建议对以下场景进行创建,Holodesk将会表现出极强的处理能力: - 当机器拥有很大的内存或者部署了SSD时。 - 过滤高的场景,包括单表扫描和多表MapJoin等。 - 聚合率高的场景,例如GROUP BY之后,信息被大量聚合。 |
HYPERDRIVE | TDH的底层数据是互通的,因此同样也支持对接其他产品的特性表,比如Hyperbase表。Hyperbase表的数据存在hyperbase里,hyperbase主要是Nosql数据库,可以存非结构化数据,半结构化数据,最大的特性在于数据存进来后进行高并发数据点查询,可以满足十个人一百个人同时进行查询操作,适用于精确查询(全局索引)、海量并发查询、对象存储。 若需使用此存储格式需要提前安装星环的 Hyperbase 产品,并设置 Quark 引擎依赖于 Hyperbase 服务后,通过 Beeline 连接上述 Quark 服务即可定义 Hyperdrive 表。 |
ESDRIVE | Es表则存放于search中,用户可以进行复杂检索,模糊匹配,语义匹配等等。 若使用此存储格式需要设置 Quark 服务依赖于 Search 服务。 |
EXCEL/JSON | EXCEL 文件就是 excel 软件生成的文件,也叫工作簿,其后缀名一般都是 XLS(2003 版以后的是 XLSX)。 JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。 |
FWCFILE | FWCFILE 是定宽文本文件,有一些业务场景中,客户提供的数据文件为定宽文本文件,即每个字段的字节宽度是固定的,字段和字段之间没有显示的分隔符,每条数据之间有行分隔符。 |
SEQUENCEFILE | SequeceFile是Hadoop API提供的一种二进制文件支持。这种二进制文件直接将<key, value>对序列化到文件中。一般对小文件可以使用这种文件合并,即将文件名作为key,文件内容作为value序列化到大文件中。 这种文件格式有以下好处: - 支持压缩,且可指定为基于Record或Block压缩(Block级压缩性能较优) - 本地化任务支持:因为文件可以被切分,因此MapReduce任务时数据的本地化情况是非常好的。 - 难度低:因为是Hadoop框架提供的API,业务逻辑侧的修改比较简单。 坏处: 需要一个合并文件的过程,且合并后的文件将不方便查看。 |
RCFILE | 结合列存储和行存储的优缺点,Facebook提出了基于行列混合存储的RCFile,它是基于SEQUENCEFILE实现的列存储格式,它即满足快速数据加载和动态负载高适应的需求外,也解决了SEQUENCEFILE的一些瓶颈。该存储结构遵循的是“先水平划分,再垂直划分”的设计理念。先将数据按行水平划分为行组,这样一行的数据就可以保证存储在同一个集群节点;然后在对行进行垂直划分。 |
PARQUET | Parquet 是列式存储的一种文件类型,无论数据处理框架,数据模型或编程语言的选择如何,Parquet都是Hadoop生态系统中任何项目可用的列式存储格式。Parquet与TEXT、JSON、CSV等文件格式相比,它有三个核心特征:列式存储、自带Schema、具备Predicate Filter特性。 |
功能介绍以及创建示例请参考下方链接进一步了解
星环产品可存储的表格式功能介绍以及创建示例(扩展篇) - 星环开发者社区