• 沒有找到結果。

可通过指定各列及其数据类型来创建表。启用Kerberos认证的分析集群创建

CarbonData表时,如果用户需要在默认数据库“default”以外的数据库创建新表,则 需要在Hive角色管理中为用户绑定的角色添加指定数据库的“Create”权限。

命令示例:

CREATE TABLE IF NOT EXISTS productdb.productSalesTable ( productNumber Int,

productName String, storeCity String, storeProvince String, revenue Int)

STORED BY 'org.apache.carbondata.format' TBLPROPERTIES (

'table_blocksize'='128',

'DICTIONARY_EXCLUDE'='productName', 'DICTIONARY_INCLUDE'='productNumber');

上述命令所创建的表的详细信息如下:

2-2 表信息定义

参数 描述

productSalesTable 待创建的表的名称。该表用于加载数据进行分析。

表名由字母、数字、下划线组成。

productdb 数据库名称。该数据库将与其中的表保持逻辑连接以便于 识别和管理。

数据库名称由字母、数字、下划线组成。

productNumber productName storeCity storeProvince revenue

表中的列,代表执行分析所需的业务实体。

列名(字段名)由字母、数字、下划线组成。

说明CarbonData暂不支持设置列是否允许为空、默认值以及主键。

table_blocksize CarbonData表使用的数据文件的block大小,默认值为 1024,取值范围为1~2048,单位为MB。

● 如果“table_blocksize”值太小,数据加载时将生成过 多的小数据文件,可能会影响HDFS的使用性能。

● 如果“table_blocksize”值太大,数据查询时索引匹配 的block数据量较大,导致读取并发度不高,从而降低 查询性能。

一般情况下,建议根据数据量级别来选择大小。例如:GB 级别用256,TB级别用512,PB级别用1024。

DICTIONARY_EXCLUD

E 设置指定列不生成字典,适用于数值复杂度高的列。系统

默认为String类型的列做字典编码,但是如果字典值过多,

会导致字典转换操作增加造成性能下降。

一般情况下,列的数值复杂度高于5万,可以被认定为高复 杂度,则需要排除掉字典编码,该参数为可选参数。

说明在非字典列中,只支持String和Timestamp数据类型。

DICTIONARY_INCLUD

E 设置指定列生成字典,适用于数值复杂度低的列,可以提

升字典列上的groupby性能,为可选参数。一般情况下,

字典列的复杂度不应该高于5万。

2.4 删除 CarbonData 表

操作场景

用户根据业务使用情况,可以删除不再使用的CarbonData表。删除表后,其所有的元 数据以及表中已加载的数据都会被删除。

操作步骤

步骤1 运行如下命令删除表。

DROP TABLE [IF EXISTS] [db_name.]table_name;

“db_name”为可选参数。如果没有指定“db_name”,那么将会删除当前数据库下 名为“table_name”的表。

例如执行命令,删除数据库“productdb”下的表“productSalesTable”:

DROP TABLE productdb.productSalesTable;

步骤2 执行以下命令查询表是否被删除:

SHOW TABLES;

----结束

3 使用 CarbonData(MRS 3.x 及之后版本)

3.1 概述

MRS 3.x及后续版本参考本章节,MRS 3.x之前版本请参考使用CarbonData(MRS 3.x之前版本)。

3.1.1 CarbonData 简介

CarbonData是一种新型的Apache Hadoop本地文件格式,使用先进的列式存储、索 引、压缩和编码技术,以提高计算效率,有助于加速超过PB数量级的数据查询,可用 于更快的交互查询。同时,CarbonData也是一种将数据源与Spark集成的高性能分析 引擎。

3-1 CarbonData 基本架构

使用CarbonData的目的是对大数据即席查询提供超快速响应。从根本上说,

CarbonData是一个OLAP引擎,采用类似于RDBMS中的表来存储数据。用户可将大量

(10TB以上)的数据导入以CarbonData格式创建的表中,CarbonData将以压缩的多 维索引列格式自动组织和存储数据。数据被加载到CarbonData后,就可以执行即席查 询,CarbonData将对数据查询提供秒级响应。

CarbonData将数据源集成到Spark生态系统,用户可使用Spark SQL执行数据查询和分 析。也可以使用Spark提供的第三方工具JDBCServer连接到Spark SQL。