背景介绍
阿里云数据湖分析(DLA)产品提供一站式的数据湖分析与计算服务。DLA Presto可以实现高效的在线分析,主要面向用户探索式分析、报表以及轻量ETL的场景。
DLA Presto已经支持比较多的数据源,但对于用户自建的大数据集群(它元数据存储在HiveMetastore,数据存储在HDFS),有时也希望和OSS、RDS、AnalyticsDB、MaxCompute、TableStore、ElasticSearch等数据关联查询,但却较难实现。因此DLA近期发布了支持访问用户自建HiveMetastore的功能,可以通过DLA分析自建HiveMetastore的数据。此外还能通过DLA Presto加速查询性能。
操作步骤
1. 准备数据。
- 在自建的HiveMetastore中创建库,表,并插入一条记录。
CREATE DATABASE testdb; CREATE EXTERNAL TABLE if not exists testdb.testTable( id int, name string); insert into testdb.testTable(id, name) values (1, "jack");
3. 绑定数据源网络。注意这里绑定的数据源网络和HiveMetastore要在同一个vpc下面,确保网络可以联通。
4. 连接DLA,创建库:
CREATE DATABASE `dladb` WITH DBPROPERTIES ( catalog = 'customer_hive', database = 'testdb', location = '172.16.199.34:9083', vpc_id = 'xxx', hdfs_properties = 'fs.defaultFS=hdfs://172.16.199.41:9000' )
说明 您也可以通过MySQL客户端或者程序代码等方式链接DLA,然后执行SQL命令创建库。参数说明:
- catalog 固定为customer_hive,表示数据源是用户的HiveMetastore数据。
- database 指定用户HiveMetastore的HiveServer中的库名。
- location 指定用户HiveMetastore的HiveServer地址。
- vpc_id 指定HiveMetastore所在的vpc。
- hdfs_properties指定HiveMetastore中默认的hdfs配置。包括两种情况:
- 非HA的HDFS:
hdfs_properties='fs.defaultFS=hdfs://172.16.199.41:9000' 注释,这里的hdfs的配置为自建HDFS的地址,需要指定为IP或域名,不能为hostname。
- HA的HDFS:
hdfs_properties='fs.defaultFS=hdfs://emr-cluster;dfs.nameservices=emr-cluster;dfs.client.failover.proxy.provider.emr-cluster=org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider;dfs.ha.namenodes.emr-cluster=nn1,nn2;dfs.nameservice.id=emr-cluster;dfs.namenode.rpc-address.emr-cluster.nn1=172.16.199.34:8020;dfs.namenode.rpc-address.emr-cluster.nn2=172.16.199.35:8020' 注释,这里的hdfs的配置为自建HA HDFS的配置,需要指定为IP或域名,不能为hostname。
- 建表,可以通过create table或msck两种方式修表。
- 创建表映射
CREATE EXTERNAL TABLE if not exists dladb.testTable( id int, name string);
说明 表名testTable需要和HiveMetastore中对于的db的表名相同。
- msck创建表映射
msck repair database dladb;
- 查询表
查询或访问数据由于只有CU的计算资源和HiveMetastore网络可以联通,因此所有访问HiveMetastore表的SQL语句都需要指定hint: /*+cluster=your-vc-name*/
,这样SQL就会在CU中执行。
示例:
mysql> /*+ cluster=vc-test */ select * from dladb.testTable; +------+------+ | id | name | +------+------+ | 1 | jack | +------+------+ 1 row in set (1.74 sec)
更多信息可参考DLA帮助文档。
使用DLA Presto的优势
DLA Presto(兼容Presto)的目标是提供比开源自建更高的性价比、开箱即用的体验、方便的数据摄入、MySQL生态带来的简单易用、内置各种优化的数据湖分析计算服务。用户可以先通过使用Serverless版本低成本试用,然后根据使用频率的高低、对资源是否有强独占的需求来决定生产环境使用Serverless版本还是CU版本。DLA Presto还在不断发展中,目前规划中的一些特性包含:
- 按照时间段或者工作负载进行自动扩缩容,帮助用户节省成本。
- 支持文件缓存机制,提升查询性能
- 内置大数据最佳实践,自动拦截Bad SQL
欢迎大家关注我们的钉钉群获取最新的信息: