本文介绍如何在 StarRocks 中创建数据库和表,插入数据,执行常用的系统管理命令,以及一些常用配置的修改方法,快速了解上手 StarRocks。
设置环境变量
首先,我们需要设置 JAVA_HOME
环境变量,以便 StarRocks 能够找到 Java 运行时环境。
export JAVA_HOME="/data3/starrocks/jdk-17.0.11"
启动 FE Frontend 计算服务
进入 StarRocks 安装目录,并启动 Frontend 服务。
cd /data3/starrocks/StarRocks-3.3.0
./fe/bin/start_fe.sh --daemon
检查日志
可以通过检查日志文件来确保 Frontend 服务已正确启动。
cat fe/log/fe.log | grep thrift
启动 BE backend 存储服务
进入 StarRocks 安装目录,并启动 backend 服务。
cd /data3/starrocks/StarRocks-3.3.0
./be/bin/start_be.sh --daemon
连接到 StarRocks
使用 MySQL 客户端连接到 StarRocks。
mysql -h 127.0.0.1 -P9030 -uroot
显示所有 Frontend 节点
执行以下命令查看所有 Frontend 节点的信息。
SHOW PROC '/frontends'\G
添加和下线 Backend 节点
通过以下命令可以添加一个新的 Backend 节点。
ALTER SYSTEM ADD BACKEND "x.x.x.x:9050";
可以通过以下命令下线 Backend 节点。
ALTER SYSTEM DECOMMISSION BACKEND "0.0.0.0:9050";
ALTER SYSTEM DECOMMISSION BACKEND "127.0.0.1:9050";
创建数据库和表
创建一个名为 hw_db
的数据库,并在其中创建一个名为 event_logs
的表。
CREATE DATABASE hw_db;
USE hw_db;
CREATE TABLE event_logs (
id INT,
event_name VARCHAR(255),
event_time DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=OLAP
DISTRIBUTED BY HASH(id) BUCKETS 10;
插入一些数据到 event_logs
表中。
INSERT INTO event_logs (id, event_name, event_time) VALUES
(1, 'Event 1', "2024-07-01 11:11:11"),
(2, 'Event 2', "2024-07-01 12:12:12");
创建另一个名为 user_ping
的表。
CREATE TABLE user_ping (
id BIGINT AUTO_INCREMENT,
time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
idc VARCHAR(64),
vendor VARCHAR(64),
isp VARCHAR(64),
ping INT,
delay INT
) ENGINE=OLAP
COMMENT "user_ping"
DISTRIBUTED BY RANDOM BUCKETS 1
ORDER BY (time);
查看 user_ping
表的创建语句。
SHOW CREATE TABLE user_ping;
插入一些数据到 user_ping
表中。
INSERT INTO user_ping (idc, vendor, isp, ping, delay) VALUES
("idc", "vendor", "isp", 11, 22),
("idc", "vendor", "isp", 11, 22);
查询数据
执行查询以从 user_ping
表中选择数据。
SELECT id, idc, vendor, isp, ping, delay FROM user_ping;
SELECT time, vendor, isp, ping, delay FROM user_ping;
常用配置修改
以下是一些常用的配置修改示例,以帮助您优化和管理 StarRocks。
配置文件位置
StarRocks 的配置文件通常位于 conf/
目录下,例如 fe.conf
和 be.conf
。
修改 Frontend 配置
编辑 fe.conf
文件以更改 Frontend 的配置。例如,修改 HTTP 端口:
http_port = 8030
修改 Backend 配置
编辑 be.conf
文件以更改 Backend 的配置。例如,修改存储路径:
storage_root_path = /data/starrocks_storage
配置日志级别
可以在 fe.conf
和 be.conf
文件中配置日志级别。例如,设置日志级别为 INFO
:
log_level = INFO
重新启动服务
在修改配置文件后,重新启动 Frontend 和 Backend 服务以使更改生效。
# 重启 Frontend
./fe/bin/stop_fe.sh
./fe/bin/start_fe.sh --daemon
# 重启 Backend
./be/bin/stop_be.sh
./be/bin/start_be.sh --daemon
测试脚本
import pymysql
# 配置连接参数
config = {
'user': 'root',
# 'password': 'your_password',
'host': '127.0.0.1',
'port': 9030, # StarRocks 的默认端口
'database': 'hw_db'
}
# INSERT INTO user_ping (idc, vendor, isp, ping, delay) VALUES ("idc", "vendor", "isp", 11, 22), ("idc", "vendor", "isp", 11, 22);
# 数据插入语句
insert_stmt = "INSERT INTO user_ping (idc, vendor, isp, ping, delay) VALUES (%s, %s, %s, %s, %s)"
import random, string
# 生成随机字符串
def random_string(length):
letters = string.ascii_letters
return ''.join(random.choice(letters) for i in range(length))
# 生成随机数据
def generate_random_data(num_records):
data = []
for _ in range(num_records):
idc = random_string(5)
vendor = random_string(6)
isp = random_string(3)
ping = random.randint(1, 100)
delay = random.randint(1, 50)
data.append((idc, vendor, isp, ping, delay))
return data
import time
start_time = time.time()
count = 1000
num_records = 10000
for value in range(count):
try:
data = generate_random_data(num_records)
connection = pymysql.connect(**config)
cursor = connection.cursor()
cursor.executemany(insert_stmt, data)
connection.commit()
print(f"{cursor.rowcount} records inserted successfully. {value}")
except pymysql.MySQLError as e:
print(f"Error: {e}")
cursor.close()
connection.close()
print('插入{}数据耗时{}'.format(count * num_records, time.time() - start_time))
# starrocks
# 插入 20 0000 数据耗时 52.86096715927124
# 插入 100 0000 数据耗时 265.4833595752716
# 插入 1000 0000 数据耗时 2716.260214805603 => 45.3 分钟
# 插入 1000 0000 数据耗时 2723.1344895362854
# 磁盘文件大小 2.6G
标签:StarRocks,vendor,入门,isp,ping,及表,user,time
From: https://www.cnblogs.com/sening/p/18280076