
# 配置StarRocks对接Paimon数据源
通过连接MRS Paimon，可以实现利用Paimon作为统一的实时数据湖底座，同时复用StarRocks强大的OLAP分析能力，从而在降低存储成本的同时，实现从数据产生到价值洞察的秒级闭环。
#### 前提条件
- 已[创建StarRocks集群](https://support.huaweicloud.com/usermanual-cloudtable/cloudtable_01_0489.html)。
- 已[安装MySQL客户端](https://support.huaweicloud.com/usermanual-cloudtable/cloudtable_01_0494.html#cloudtable_01_0494__section531737153320)。
 
- 为了确保网络连通，MRS集群必须与StarRocks集群的VPC、子网保持一致，且将StarRocks集群的所有节点IP加入到MRS集群的安全组中。 MRS集群与StarRocks集群的版本配套关系如[表1]所示。
   表1版本配套关系 
  | MRS集群版本     | MRS Paimon版本 | StarRocks集群版本 |
  |:---|:---|:---|
  | 3.6.0-LTS.1 | 1.2.0        | 3.3.18        |
     
  
- 已在MRS集群中通过Hive组件准备了待读取的Paimon表数据，详细操作请参考[配置Hive对接Paimon](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_300808.html)。
#### 使用限制
- 本章节操作仅StarRocks 3.3.18及之后版本集群支持。
- 仅支持对接一个MRS集群。
- 为保证能正常访问MRS Paimon内的数据，StarRocks集群必须能够访问Paimon集群的存储系统和元数据服务。目前StarRocks支持以下存储系统和元数据服务：
  - MRS分布式文件系统（HDFS）或对象存储服务OBS。
  
  - 元数据服务仅支持Hive MetaStore。
  
  
  在StarRocks对接MRS Paimon的场景中，[表2]中的查询操作已进行了质量加固和充分测试，为保证您的业务稳定性，其他查询场景，请进行充分测试后再使用。
   表2StarRocks对接MRS Paimon支持的查询操作 
  | 类别                                                | 操作                                                                                                                                                                                                           | 适用场景                                                                                                                                                                                                                                              |
  |:---|:---|:---|
  | 主键表  | - 固定分桶  - 动态分桶    | - 固定分桶适用于数据量预测准确的存量同步。  - 动态分桶适用于业务增长不确定，需要自动扩容的场景。   |
  | 主键表  | Deletion Vector                                                                                                                                                                                              | 适用于高频更新场景。通过标记删除而非物理合并来提升读取性能，解决频繁更新导致合并压力过大的问题。                                                                                                                                                                                                  |
  | append表                                           | - 分桶  - 非分桶     | 非分桶模式（Unaware Bucket）能提供极高的写入吞吐量，适合大规模埋点采集。                                                                                                                                                                                                       |
  | 文件格式                                              | Parquet                                                                                                                                                                                                      | 典型的列式存储。适用于绝大多数OLAP分析场景，压缩率高，扫描快。                                                                                                                                                                                                                 |
  | Paimon系统表                                         | 支持查询Paimon所有的系统表                                                                                                                                                                                             | 用于进行监控与运维。通过查询系统表（如snapshots/files），运维人员可以查看数据写入历史、文件碎片情况，排查性能瓶颈。                                                                                                                                                                                 |
  | Paimon视图                                          | 支持查询Paimon的视图                                                                                                                                                                                                | 将复杂的Join逻辑封装成视图，方便下游BI工具直接调用，而不必暴露底层复杂的表结构。                                                                                                                                                                                                       |
  | Data Types                                        | - MAP  - ARRAY   | Map和Array极大方便了处理埋点中的扩展字段（如用户的多个属性），无需频繁修改表Schema。                                                                                                                                                                                                 |
  | Schema Evolution                                  | 支持Paimon表的Schema Evolution                                                                                                                                                                                   | 当业务增加新字段时，可以直接执行ADD COLUMN而不需要像传统离线表那样删表重建，且能读取历史数据。                                                                                                                                                                                              |
  | 元数据管理                                             | Hive MetaStore                                                                                                                                                                                               | StarRocks支持的元数据服务。                                                                                                                                                                                                                                |
     
  
- Paimon Catalog仅支持查询Paimon表数据，不支持查询其他类型的表数据，例如Hive、Hudi表数据。
- 在StarRocks集群创建Paimon Catalog后，如果对接的MRS Paimon表增加、删除或修改了字段，则需执行以下操作刷新Catalog以获取最新的Schema后再执行查询操作：
  ```
  refresh catalog catalog_name;
  ```
  
 
#### 步骤一：创建Paimon连接
1. 登录[表格存储服务控制台](https://console.huaweicloud.com/cloudtable)。
2. 在集群管理界面，选择目标集群进入集群详情页面。
3. 选择"连接管理 \> 新建连接"，弹出新建连接页面，创建MRS Paimon连接。
4. 新建连接类型： 
   - 认证类型选择SIMPLE，OBS按钮关闭状态。
   
   - 认证类型选择KERBEROS，OBS按钮关闭状态。
   
   - 认证类型选择SIMPLE，OBS按钮开启状态。
   
   - 认证类型选择KERBEROS，OBS按钮开启状态。
   
   
   表3参数说明 
   | 参数         | 描述                                                                                                                                                                                                                                                                                                         |
   |:---|:---|
   | 连接名称       | 根据连接的数据源类型，用户可以自定义连接名。 说明： 必须以字母开头，由字母、数字、中划线组成，不能包含其他的特殊字符，并且长度为4～64个字符。                                                                                                                                                      |
   | 连接器        | StarRocks支持的外部数据目录组件，目前支持可选：Hive，即仅支持读取MRS Hive创建的Paimon表数据。                                                                                                                                                                                                                                               |
   | Hadoop类型   | StarRocks支持的Hadoop组件，目前支持的可选：MRS。                                                                                                                                                                                                                                                                          |
   | 集群名称       | 被访问的MRS集群名称，即待对接的MRS集群。 StarRocks只能对接一个KERBEROS集群中的一个用户。                                                                                                                                                                                                              |
   | Manager IP | MRS Manager的浮动IP地址，选择连接的集群后，IP地址会自动填充。                                                                                                                                                                                                                                                                     |
   | 认证类型       | MRS集群鉴权类型，安全集群可选"KERBEROS"，非安全集群可选"SIMPLE"。选择连接的集群后，安全类型会自动填充。 KERBEROS类型的连接只能创建一个。                                                                                                                                                                                   |
   | 连接器版本      | MRS集群的数据源组件的版本，HIVE支持3版本，可选：3.X。                                                                                                                                                                                                                                                                           |
   | 用户名        | MRS集群的用户名，且此用户必须为高权限，可以访问Hive、HDFS的底层数据。如果您想创建新用户，请参见[创建MRS集群用户](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0345.html)。                                                                                                                                                                         |
   | 密码         | MRS集群用户对应的密码。                                                                                                                                                                                                                                                                                              |
   | OBS支持      | 是否开启OBS支持。 - 开启：当前创建的Catalog连接的数据表在OBS上。  - 关闭：当前创建的Catalog连接的数据表在HDFS。   |
      
   
   
5. 配置好参数后，单击"测试"。如果测试失败请检查用户名和密码是否正确。
6. 测试完成后，单击"确定"按钮，连接列表页面会出现一条新的连接记录。
 
#### 步骤二：使用SQL命令创建Catalog
1. 使用SSH登录工具，通过弹性IP登录到Linux弹性云服务器。 
   具体登录操作步骤请参见弹性云服务器《用户指南》中的" [SSH密码方式登录](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0017955633.html)"。
   
   
2. 访问StarRocks集群，参见[使用MySQL客户端连接StarRocks普通集群](https://support.huaweicloud.com/usermanual-cloudtable/cloudtable_01_0494.html)。
   
   ```
   ./mysql -uadmin -ppassword -h集群内网IP地址 -P9030
   ```
   
   
3. 创建Paimon Catalog。 
   - Catalog连接的Paimon数据存储在MRS HDFS中
     ```
     CREATE EXTERNAL CATALOG paimon_catalog
     PROPERTIES
     (
         "type" = "paimon",
         "paimon.catalog.type" = "hive",
         "paimon.catalog.warehouse" = "hdfs://hacluster/user/hive/paimon",
         "hive.metastore.uris" = "thrift://172.16.11.106:9083,thrift://172.16.11.15:9083"
     );
     ```
     
   
   - Catalog连接的Paimon数据存储在OBS中
     ```
     CREATE EXTERNAL CATALOG paimon_obs_catalog
     PROPERTIES
     (
         "type" = "paimon",
         "paimon.catalog.type" = "hive",
         "paimon.catalog.warehouse" = "obs://OBS桶名/user/hive/paimon",
         "hive.metastore.uris" = "thrift://172.16.11.106:9083,thrift://172.16.11.15:9083",
         "fs.obs.access.key" = "xxx",
         "fs.obs.secret.key" = "xxx",
         "fs.obs.endpoint" = "xxx",
         "fs.obs.region" = "xxx"
     );
     ```
     
   
   
   表4参数说明 
   | 参数                       | 参数说明                                                                                                |
   |:---|:---|
   | type                     | 对接的外部数据类型，需指定为"paimon"。                                                                             |
   | paimon.catalog.type      | 用于指定Paimon Catalog的元数据类型，即"hive"。                                                                   |
   | paimon.catalog.warehouse | 用于指定MRS Paimon数据所在的目录。                                                                              |
   | hive.metastore.uris      | Hive元数据URI，可在MRS Hive客户端的"*客户端安装目录*/Hive/config/hive-site.xml"配置文件中查看。                              |
   | fs.obs.access.key        | 访问OBS桶的AK，获取方式请参见的[获取访问密钥（AK/SK）](https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html)章节。 |
   | fs.obs.secret.key        | 访问OBS桶的SK，获取方式请参见的[获取访问密钥（AK/SK）](https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html)章节。 |
   | fs.obs.endpoint          | OBS桶的Endpoint，获取方式请参见的[获取终端节点](https://support.huaweicloud.com/obs_faq/obs_faq_0124.html)章节。        |
   | fs.obs.region            | OBS桶所在的Region。                                                                                      |
      
   相关参数描述以及参数值获取方法。
   1. 以root用户登录MRS客户端所在节点（Master1节点）。
   
   2. 进入client目录下，显示出MRS的全部组件，Hive组件中包含了"hive-site.xml"配置文件。
      ```
      cd /opt/Bigdata/client/
      ```
      
   
   3. 进入组件中的配置文件查看参数。查看Hive组件中的"hive-site.xml"配置文件，查找相关参数并获取对应的参数值。
      ```
      cat /opt/Bigdata/client/Hive/config/hive-site.xml
      ```
      
    
   
   
 
#### 步骤三：查询数据映射表
1. 查看Catalogs，以查看Paimon HDFS数据表为例： 
   ```
   show catalogs;
   ```
   ![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002543453738.png "点击放大")
   
   
2. 执行以下命令查询Catalog中的数据库： 
   ```
   show databases from catalog_name;
   ```
   ![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002543884638.png)
   
   
3. 执行以下命令切换到指定的Catalog中： 
   ```
   set catalog catalog_name;
   ```
   
   
4. 执行以下命令使用数据库： 
   ```
   use db_name;
   ```
   
   
5. 执行以下命令查看数据库中的表： 
   ```
   show tables;
   ```
   
   
6. 执行以下命令查询目标表的数据： 
   ```
   select * from table_name limit 10;
   ```
   
   
 
