Skip to content

Commit 46f746c

Browse files
committed
add blog
1 parent fb9f272 commit 46f746c

File tree

4 files changed

+16007
-0
lines changed

4 files changed

+16007
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,6 @@ yarn-error.log*
2929
.env.development.local
3030
.env.test.local
3131
.env.production.local
32+
33+
#package lock
34+
package-lock.json

contents/blog/starrocks-rustfs.mdx

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
# StarRocks x RustFS 对接性能测试
2+
3+
传统的HDFS存储一体架构给企业的扩容和降本造成了很大的压力。
4+
5+
近年开始存算分离与湖仓一体(Lakehouse)越来越火。特别是2024年数据架构蓬勃发展的一年,越来越多的企业选择将数据湖作为统一的存储层,并在之上构建包括BI、AI在内的丰富的数据应用。
6+
Apache Iceberg 作为数据湖领域内炙手可热的开源项目在2024年同样取得显著的进步,社区主导的 Rest Catalog 变得越来越完善,iceberg V3 格式也趋向成熟,包括 Snowflake, AWS,Apple,Databricks在内的公司都将 Iceberg 作为其首选的数据湖表格式,这无疑推动着 Iceberg 逐步成为数据湖表格式的标准。
7+
8+
9+
10+
## Star Rocks介绍
11+
12+
StarRocks 是一款新一代的极速全场景 MPP (Massively Parallel Processing) 数据库。它主要面向数据分析领域,提供了高性能、实时分析的能力。
13+
14+
它的优点非常之多,包括:
15+
16+
- 节省成本:分离计算和存储可以实现独立扩展和优化资源利用率,从而显着节省成本。
17+
- 高性能:StarRocks 使用了列式存储和分布式架构,具有高吞吐量和低延迟的特点。
18+
- 可扩展性:它还提供了独立扩展对象存储和计算的能力,从而实现更好的敏捷性并最终实现更精确的扩展。
19+
- 高效的 SQL 查询:StarRocks 提供了多种查询优化技术,如列式存储、索引、查询计划优化等,使得 SQL 查询效率提高。
20+
- 支持多种数据源:StarRocks 支持多种数据源,如 MySQL、Hive、HBase 等,可以轻松地导入数据。
21+
- 支持多种数据格式:StarRocks 支持多种数据格式,如 Parquet、ORC
22+
- 灵活性:解耦可以实现更大的运营灵活性,使企业能够选择最适合特定任务的工具和服务。
23+
- 存算分离支持: 全面支持S3本地部署的存储系统,如MinIO、RustFS等。
24+
25+
26+
## 先决条件
27+
28+
下载并运行RustFS。
29+
30+
创建一个桶:
31+
32+
在 SQL 客户端中运行以下命令,确保使用之前在 RustFS 控制台中创建的访问密钥和机密:
33+
34+
~~~
35+
CREATE STORAGE VOLUME shared
36+
TYPE = S3
37+
LOCATIONS = ("s3://starrocks/shared/")
38+
PROPERTIES
39+
(
40+
"enabled" = "true",
41+
"aws.s3.endpoint" = "http://rustfs:9000",
42+
"aws.s3.use_aws_sdk_default_behavior" = "false",
43+
"aws.s3.enable_ssl" = "false",
44+
"aws.s3.use_instance_profile" = "false",
45+
"aws.s3.access_key" = "{YOUR ACCESS KEY}",
46+
"aws.s3.secret_key"= "{YOUR SECRET KEY}"
47+
);
48+
49+
SET shared AS DEFAULT STORAGE VOLUME;
50+
51+
~~~
52+
53+
54+
55+
## 入门
56+
57+
打开终端并运行此命令来创建要处理的目录并下载 Docker 撰写文件。
58+
59+
~~~
60+
mkdir sr-quickstart
61+
cd sr-quickstart
62+
curl -O https://raw.githubusercontent.com/StarRocks/demo/master/documentation-samples/quickstart/docker-compose.yml
63+
~~~
64+
65+
66+
67+
## 下载数据
68+
69+
在终端窗口中运行以下命令以在starrocks-fe容器中打开 Bash shell,从而允许您与容器的文件系统交互并在其中执行命令。
70+
71+
~~~
72+
docker compose exec starrocks-fe bash
73+
~~~
74+
75+
运行这些命令以在容器内创建快速启动目录。
76+
77+
~~~
78+
mkdir quickstart
79+
cd quickstart
80+
~~~
81+
82+
运行这些命令将两个数据集下载到您刚刚创建的文件夹中。
83+
84+
85+
~~~
86+
curl -O https://raw.githubusercontent.com/StarRocks/demo/master/documentation-samples/quickstart/datasets/NYPD_Crash_Data.csv
87+
88+
curl -O https://raw.githubusercontent.com/StarRocks/demo/master/documentation-samples/quickstart/datasets/72505394728.csv
89+
90+
~~~
91+
92+
93+
## 创建表
94+
95+
~~~
96+
CREATE TABLE `t3` (
97+
`id` int(11) NULL COMMENT ""
98+
) ENGINE=OLAP
99+
DUPLICATE KEY(`id`)
100+
COMMENT "OLAP"
101+
DISTRIBUTED BY RANDOM
102+
PROPERTIES (
103+
"bucket_size" = "4294967296",
104+
"compression" = "LZ4",
105+
"datacache.enable" = "true",
106+
"enable_async_write_back" = "false",
107+
"replication_num" = "1",
108+
"storage_volume" = "rustfs"
109+
);
110+
~~~
111+
112+
## RustFS 机器配置
113+
114+
| 硬件 |规格说明|
115+
| --- | --- |
116+
| 供应商 | 阿里云 |
117+
| 区域 | 杭州 |
118+
| 机型 | ECS.c6g.8xlarge |
119+
| CPU |8 vCPU |
120+
|内存 |64GB |
121+
|磁盘 |1.8T NVMe SSD|
122+
|网络 |基础 2.5Gbps|
123+
124+
125+
## 批量导入性能
126+
127+
总计耗时约 8min 42s:
128+
129+
~~~
130+
*************************** 2. row ***************************
131+
JobId: 14778
132+
Label: store_sales
133+
State: FINISHED
134+
Progress: ETL:100%; LOAD:100%
135+
Type: BROKER
136+
Priority: NORMAL
137+
ScanRows: 2879987999
138+
FilteredRows: 0
139+
UnselectedRows: 0
140+
SinkRows: 2879987999
141+
EtlInfo: NULL
142+
TaskInfo: resource:N/A; timeout(s):144000; max_filter_ratio:0.0
143+
ErrorMsg: NULL
144+
CreateTime: 2025-01-14 16:59:42
145+
EtlStartTime: 2025-01-14 16:59:43
146+
EtlFinishTime: 2025-01-14 16:59:43
147+
LoadStartTime: 2025-01-14 16:59:43
148+
LoadFinishTime: 2025-01-14 17:08:24
149+
TrackingSQL:
150+
JobDetails: {"All backends":{"bb10190d-67a6-4637-8d08-68e800c64b73":[10065,10066,10067,10068,10069,10070]},"FileNumber":400,"FileSize":259169829133,"InternalTableLoadBytes":481093033465,"InternalTableLoadRows":2879987999,"ScanBytes":259169829133,"ScanRows":2879987999,"TaskNumber":1,"Unfinished backends":{"bb10190d-67a6-4637-8d08-68e800c64b73":[]}}
151+
Warehouse: default_warehouse
152+
2 rows in set (0.00 sec)
153+
~~~
154+
155+
<img src="/images/blog/starrocks-rustfs.png" title="性能监控" />
156+
157+
158+
## 结论
159+
160+
Star Rocks 与RustFS 在MPP的存算分离上的测试结果和性能表现非常优秀。
161+
162+
更多内容投稿请联系:hello@rustfs.com

0 commit comments

Comments
 (0)