StarRocks示例
更新时间:2025-01-23
前提条件
- 已完成创建 BMR 集群,并且配置了 Paimon、Hive 组件,详情请参见创建集群。
- 已完成创建 StarRocks 是自建集群,将 BMR 集群 core-site.xml 和 hdfs-site.xml 配置文件 已复制到 StarRocks 集群 FE 和 FE 的 conf 下。
注意事项
- Paimon Catalog 仅支持查询 Paimon 数据,不支持针对 Paimon 的写/删操作。
StarRocks读示例
- SSH登录集群,参考SSH连接到集群;
- 创建 paimon 表,参考以下命令:
spark-sql --master local[2]
USE paimon;
USE default;
drop table if exists spark_paimon;
-- 如果没有 bucket,对 spark 没有影响,hive 可以读,但是不能写入。
create table spark_paimon (
id int,
name string
) tblproperties (
'primary-key' = 'id',
'bucket' = '4'
);
INSERT INTO spark_paimon VALUES (1, 'spark-paimon-1'), (2, 'spark-paimon-2');
select * from spark_paimon;
- 结果显示如下:
2 spark-paimon-2
1 spark-paimon-1
- StarRocks 创建 Catalog,读取 Paimon 表,参考以下命令:
CREATE EXTERNAL CATALOG srpaimon PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "hive",
"paimon.catalog.warehouse" = "hdfs://bmr-cluster/warehouse/tablespace/managed/hive/spark_paimon",
"hive.metastore.uris" = "thrift://master-fba3efd-1:9083,thrift://master-fba3efd-2:9083"
);
SET CATALOG srpaimon;
use default;
select * from spark_paimon;
- 结果显示如下:
+------+----------------+
| id | name |
+------+----------------+
| 1 | spark-paimon-1 |
| 2 | spark-paimon-2 |
+------+----------------+
导入 Paimon 示例
- 创建 StarRocks 表,并插入数据,参考以下命令:
CREATE DATABASE srpaimontest;
use srpaimontest;
create table srtest (
id int,
name string
);
INSERT INTO srtest VALUES (3, 'spark-paimon-3'), (4, 'spark-paimon-4');
select * from srtest;
- 结果显示如下:
+------+----------------+
| id | name |
+------+----------------+
| 4 | spark-paimon-4 |
| 3 | spark-paimon-3 |
+------+----------------+
- 导入 paimon 表数据,参考以下命令:
INSERT INTO srtest SELECT * FROM srpaimon.`default`.`spark_paimon`;
select * from srtest;
- 结果显示如下:
+------+----------------+
| id | name |
+------+----------------+
| 1 | spark-paimon-1 |
| 2 | spark-paimon-2 |
| 3 | spark-paimon-3 |
| 4 | spark-paimon-4 |
+------+----------------+