本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
数据湖分析版实例适用于查询存储在Apache Hive、Apache Iceberg、Apache Hudi以及Apache Paimon等多种数据湖上的数据,并涵盖OSS、OSS-HDFS、HDFS等平台,无需数据迁移即可实现快速的数据湖查询分析,且其性能比Presto高出3到5倍。本文以创建Hive Catalog为例,为您介绍如何查询Hive上的数据。
前提条件
注册阿里云账号,并完成实名认证。具体操作请参见账号注册(PC端)。
如果是RAM用户,已授权AliyunEMRStarRocksFullAccess系统权限策略。
说明创建和管理StarRocks实例需要具备AliyunEMRStarRocksFullAccess系统权限策略。
注意事项
代码的运行环境由所属用户负责管理和配置。
操作流程
创建数据湖分析版StarRocks实例
进入EMR Serverless StarRocks实例列表页面。
在左侧导航栏,选择
。在顶部菜单栏处,根据实际情况选择地域。
在实例列表页面,单击创建实例。
选择数据湖分析版的实例类型。
在E-MapReduce Serverless StarRocks页面,完成实例相关配置。
配置项
示例
描述
付费类型
按量付费
支持包年包月和按量付费的计费方式。
地域
华北2(北京)
实例所在的物理位置。
重要实例创建后,无法更改地域,请谨慎选择。
可用区
可用区I
实例所在可用区。
重要实例创建后,无法更改可用区,请谨慎选择。
专有网络
vpc_Hangzhou/vpc-bp1f4epmkvncimpgs****
选择对应地域下的专有网络。如果没有,单击创建VPC进行创建。创建完成后,单击右侧的图标,可以选择刚创建的VPC。
重要请确保您要访问的EMR集群与StarRocks实例都处于同一专有网络内,或者通过适当网络配置实现网络互通。
交换机
vsw_i/vsw-bp1e2f5fhaplp0g6p****
选择在对应专有网络下所选可用区内的交换机。如果在所选专有网络下没有交换机,可单击创建交换机前往创建。创建完成后,单击右侧的图标,可以选择刚创建的交换机。
负载均衡
选中
会开通负载均衡。StarRocks FE内网服务,依赖负载均衡的CLB私网服务。
警告使用负载均衡会产生费用,相关计费说明,请参见CLB计费概述。
实例系列
标准版
支持入门版和标准版,详情请参见实例系列说明。
版本
3.1
StarRocks的社区版本号。
CN规格
8 CU
支持规格:8CU、16CU、32CU、64CU。
CN节点缓存
使用默认值即可
用于数据存储,需要结合您期望数据读写性能选择合适的云盘类型、云盘大小,以及云盘个数。
缓存盘类型:推荐ESSD PL1云盘。更多信息,请参见块存储概述。
缓存盘大小:数量范围为50 ~ 65000 GB。
说明您可以输入所需的存储容量,系统将自动提供默认的推荐配置。如果您选择的云盘容量超出建议的阈值,系统会弹出相应的提示,帮助您做出适当的调整以确保最佳性能。
缓存盘数量:默认为1个。
CN节点数量
3
StarRocks CN节点的数量。
高可用
开启
默认开启。标准版支持开启高可用,打开高可用开关后,StarRocks FE节点数由1增加为3,以降低故障风险。
重要生产环境强烈建议您开通高可用。
FE资源配置
规格:8 CU。
存储大小:100 GB。
节点数量:3个。
入门版:FE的资源配置默认为4 CU,50 GB,节点数量为1。
标准版:FE资源配置会随着BE的数量以及资源配置而自动适配。另外,FE的节点数量取决于是否开启高可用,不开启高可用,FE节点数量为1;开启高可用,FE节点数量为3。
资源组
default resource group
可以使用默认资源组,或者选择已有的资源组,或者单击创建资源组前往资源管理控制台新建一个资源组,详情请参见创建资源组。
说明资源组(Resource Group)是在阿里云账号下进行资源分组管理的一种机制,资源组能够帮助您解决单个阿里云账号内的资源分组和授权管理的复杂性问题。
资源组更多信息,请参见资源组概述。
实例名称
自定义实例名称。
实例名称,长度限制为1~64个字符,仅可使用中文、字母、数字、短划线(-)和下划线(_)。
管理员用户
admin
用于管理StarRocks的管理员用户,默认为admin,无法修改。
登录密码和确认密码
自定义密码。
StarRocks实例内置管理员用户admin的密码。请记录该配置,管理和使用StarRocks实例需要您输入该密码。
密码长度限制为8~30个字符,且必须包含至少一个大写字母、一个小写字母、一个数字和一个特殊字符
@#$%^*_+-
。选中服务协议,单击创建实例,根据提示完成支付。
支付完成后,回到实例管理页面,查看创建的实例。当实例状态为运行中时,表示实例创建成功。
场景一、查询DLF中的数据
(可选)步骤一、创建DLF元数据的Hive集群
该场景需要使用阿里云DLF作为Hive Catalog元数据中心,所以需要开通DLF服务。您可以在DLF开通页面开通DLF服务。
如果您的DLF中已有数据,则可以忽略该步骤。如果没有数据,建议参考本步骤先创建一个EMR集群,写入测试数据,确保后续查询能返回有效结果。
步骤二、连接StarRocks实例
在实例列表页面,单击操作列的连接实例。
您也可以通过其他方式连接StarRocks实例,详情请参见连接实例。
连接StarRocks实例。
在新建连接页签,配置以下信息。
参数
示例
描述
地域
华东1(杭州)
选择已创建的StarRocks实例所在的物理位置。
实例
StarRocks_Serverlesss
选择已创建的StarRocks实例的名称。
连接名称
Connection_Serverlesss
实例名称,自定义输入。
长度限制为1~64字符,仅可使用中文、字母、数字、短划线(-)和下划线(_)。
用户名
根据实际情况输入
默认初始用户名为admin,您可以选择使用该用户名进行连接,或者根据需要创建其他用户,创建用户详情请参见管理用户及数据授权。
密码
根据实际情况输入
StarRocks实例中已创建的用户名对应的密码。
单击测试连通性。
验证通过后,单击确定。
进入SQL Editor页面,即可执行相关的SQL。更多使用信息,请参见通过EMR StarRocks Manager连接StarRocks实例。
步骤三:创建External DLF Catalog
在SQL Editor的查询列表页面,单击图标。
输入以下命令,单击运行。
CREATE EXTERNAL CATALOG hive_dlf PROPERTIES ( "type" = "hive", "hive.metastore.type" = "DLF" );
在SQL Editor的数据库页面,单击图标,即可看到hive_dlf相关的信息。
此外,创建External DLF Catalog时还支持其他属性,例如
dlf.catalog.id
、dlf.catalog.region
、dlf.catalog.endpoint
等。如果您不想使用DLF默认的数据目录(通常与您阿里云账号UID相同),而是在步骤一中创建了一个新的DLF数据目录,假设其名称为new_dlf_catalog,您可以通过如下两种方式创建Catalog,使得其能够访问到新的数据目录:通过修改配置文件
您可以通过修改
hive-site.xml
来控制所有DLF Catalog的默认配置。修改方法为:在Serverless StarRocks控制台的实例配置中找到hive-site.xml。
将
dlf.catalog.id
参数的值修改为您新创建的DLF数据目录名称,例如new_dlf_catalog
,然后提交修改。重启后,实例中所有Catalog以及新建的Catalog都会使用更新后的配置。
通过SQL语句直接指定属性
如果您希望更改特定Catalog的DLF配置,而不重启集群,可在创建Catalog的SQL语句中指定新的属性,属性信息的键和值与配置文件
hive-site.xml
完全一致。CREATE EXTERNAL CATALOG hive_dlf_new PROPERTIES ( "type" = "hive", "hive.metastore.type" = "DLF", "dlf.catalog.id" = "new_dlf_catalog" #修改为您的数据目录名称。 );
步骤四、查询数据
查看Catalog中的所有数据库
SHOW DATABASES FROM hive_dlf;
可能的结果如下所示。
+----------+ | Database | +----------+ | default | | test_db | +----------+
查看Catalog中的所有数据表
SHOW TABLES FROM hive_dlf.test_db;
可能的结果如下所示。
+-------------------+ | Tables_in_test_db | +-------------------+ | hive_test | +-------------------+
查询表中所有数据
SELECT * FROM hive_dlf.test_db.hive_test;
可能的结果如下所示。
+------+-------+ | id | name | +------+-------+ | 1 | Alice | | 2 | Bob | +------+-------+
场景二、查询Hive集群中的数据
(可选)步骤一、创建RDS或MySQL元数据的Hive集群
如果您已有EMR Hive集群,则可以忽略该步骤。
在EMR on ECS页面,创建一个DataLake类型的集群,需选中Hive服务,并且元数据选择DLF统一元数据。
创建集群操作,请参见创建集群。
重要请确保EMR集群和Serverless StarRocks实例使用相同的VPC。
通过SSH方式连接集群,详情请参见登录集群。
执行以下命令,创建Hive测试表。
进入Hive客户端及Hive基础操作,请参见Hive基础操作。
create database test_db; create table test_db.hive_test(id int, name string); insert into test_db.hive_test values(1, 'Alice'),(2, 'Bob');
步骤二、连接StarRocks实例
在实例列表页面,单击操作列的连接实例。
您也可以通过其他方式连接StarRocks实例,详情请参见连接实例。
连接StarRocks实例。
在新建连接页签,配置以下信息。
参数
示例
描述
地域
华东1(杭州)
选择已创建的StarRocks实例所在的物理位置。
实例
StarRocks_Serverlesss
选择已创建的StarRocks实例的名称。
连接名称
Connection_Serverlesss
实例名称,自定义输入。
长度限制为1~64字符,仅可使用中文、字母、数字、短划线(-)和下划线(_)。
用户名
根据实际情况输入
默认初始用户名为admin,您可以选择使用该用户名进行连接,或者根据需要创建其他用户,创建用户详情请参见管理用户及数据授权。
密码
根据实际情况输入
StarRocks实例中已创建的用户名对应的密码。
单击测试连通性。
验证通过后,单击确定。
进入SQL Editor页面,即可执行相关的SQL。更多使用信息,请参见通过EMR StarRocks Manager连接StarRocks实例。
步骤三:创建External Hive Catalog
在SQL Editor的查询列表页面,单击图标。
输入以下命令,单击运行。
CREATE EXTERNAL CATALOG hive_catalog PROPERTIES ( "type" = "hive", "hive.metastore.type" = "hive", "hive.metastore.uris" = "thrift://192.168.**.**:9083" );
代码中的
thrift://192.168.**.**:9083
为您创建集群的Metastore Thrift Server地址,请根据实际情况替换。说明需确保Serverless StarRocks实例能够访问EMR集群所在的安全组。两者处于同一个VPC下时,例如在本例中内网IP为192.168.**.**,则需要在EMR集群所在的安全组中授权
192.168.**.**/24
网段所需端口的访问权限。在SQL Editor的数据库页面,单击图标,即可看到hive_catalog相关的信息。
步骤四、查询数据
查看Catalog中的所有数据库
SHOW DATABASES FROM hive_catalog;
可能的结果如下所示。
+----------+ | Database | +----------+ | default | | test_db | +----------+
查看Catalog中的所有数据表
SHOW TABLES FROM hive_catalog.test_db;
可能的结果如下所示。
+-------------------+ | Tables_in_test_db | +-------------------+ | hive_test | +-------------------+
查询表中所有数据
SELECT * FROM hive_catalog.test_db.hive_test;
可能的结果如下所示。
+------+-------+ | id | name | +------+-------+ | 1 | Alice | | 2 | Bob | +------+-------+
相关文档
如需了解SQL Editor更多操作,请参见SQL Editor。
如需查看当前实例的SQL查询信息,分析SQL的执行计划,及时诊断和排查SQL问题,详情请参见诊断与分析。
如需查看并分析数据库中发生的所有操作,请开启审计日志,详情请参见管理审计日志。
联系我们
如果您在使用过程中有任何疑问或问题,可以使用钉钉搜索群号24010016636进行咨询。