KUDU开发
KUDU开发
使用MapReduce、Spark或Impala,你可以读取Kudu表并将其写入HDFS
KUDU API
Kudu以结构化、强类型的方式存储数据,因此可以提供KUDU的SQL访问。
目前你可以Spark Sql来访问和操作数据。还可以使用Impala。Impala是Hadoop生态系统中原生分析型数据库。
分析数据库:是面向分析应用的数据库,与传统的数据库不同,它可以对数据进行在线统计、数据在线分析、随即查询等发掘信息数据价值的工作,是数据库产品一个重要的分支。
Impala提供了对各种数据源的表的抽象,这些表存在于Kudu、HDFS、Hbase、或云的对象存储(Amazon S3)中
KUDU CLient
1.可以用来检查表的存在
2.提交DDL 创建表create表 alter表
3.获得KUDU Table对象的引用。
KUDU TABLE对象
1.insert/delete/update/upsert行
2.扫描行
KUDU DDL
要定义新的KUDU表,要定义一个表模式(schema)。这个表模式包括所有列的名称、类型、是否为空值、默认值。
API接口
大多数传统的Hadoop生态系统组件基于Java虚拟机的服务,Kudu是用C++编写的。
使用Python开发Kudu应用
import kudu
from kudu.client import Partitioning
所有使用Python开发的Kudu应用程序都需要与Kudu服务器建立client对象。
client=kudu.connect(host=kuduMaster,port=7051)
接下来,我们将调用Kudu的schema_builder API,得到一个建造者,然后用它建造一个表。
builder=kudu.shema_builder()
builder.add_column('lastname').type('string').default('doe').compression('snappy').encoding('plain').nullable(False)
builder.add_column('firstname').type('string').default('doe').compression('zlib').encoding('plain').nullable(False).block_size(20971520)
在Impala中使用Kudu
Impala表是在Kudu表之上定义的。对于Impala来说,Kudu只是它包含的另一个存储层。
在Kudu之上定义Impala表:
CREATE EXTERNAL TABLE 'impala_kudu_table'
STORED AS KUDU
TBLPROPERTIES('kudu.table_name'='my_table_name','kudu.master_addresses'='')