首页 > 数据库 >StarRocks 入门指南:创建和管理数据库及表

StarRocks 入门指南:创建和管理数据库及表

时间:2024-07-02 16:20:14浏览次数:20  
标签:StarRocks vendor 入门 isp ping 及表 user time

本文介绍如何在 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.confbe.conf

修改 Frontend 配置

编辑 fe.conf 文件以更改 Frontend 的配置。例如,修改 HTTP 端口:

http_port = 8030

修改 Backend 配置

编辑 be.conf 文件以更改 Backend 的配置。例如,修改存储路径:

storage_root_path = /data/starrocks_storage

配置日志级别

可以在 fe.confbe.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

相关文章

  • JavaScript 学习教程:从入门到精通
    JavaScript学习教程:从入门到精通JavaScript是网页开发过程中不可或缺的一部分,无论你是初学者还是有一定基础的开发者,这篇教程将帮助你更深入地理解和运用JavaScript。本文将分为多个章节,涵盖JavaScript的基本概念、高级技术、常用库和框架,以及实际项目案例。目录Jav......
  • 使用中转API进行大模型调用的入门指南
    引言在AI技术的快速发展中,大模型(LLM)成为了许多应用的核心组件。然而,由于某些地域限制和网络原因,直接访问国际API可能会遇到障碍。因此,使用中转API(http://api.wlai.vip)来调用这些大模型成为一种实用的解决方案。本文将介绍如何使用中转API调用大模型,并提供相关的示例代码。......
  • 机器学习入门(吃瓜第四章 决策树)
    目录一、决策树的算法原理决策树算法步骤决策树的基本思想二、划分选择1.ID3决策树——信息增益划分准则2.C4.5决策树——以信息增益率为划分准则3.CART决策树——以基尼指数为划分准则三、剪枝处理1.预剪枝(prepruning)2.后剪枝(post-pruning)参考文献一、决......
  • 地理信息革命:从入门到精通,用ArcGIS Pro和Python重塑你的数据世界
    你还在为找不到合适的数据而苦恼吗?你还在面对大量数据束手无策,不知如何处理吗?对于从事生产和科研的人员来说,空间数据的采集与管理是地理信息系统(GIS)和空间分析领域的关键环节。通过准确高效地采集和管理空间数据,可以为后续的数据处理、分析和决策提供坚实的基础。本课程将详细......
  • 入门Salesforce:必须掌握的20+基础专业术语!
    Salesforce的发展令人印象深刻。在过去的20年中,Salesforce创建了一个由管理员、开发人员、顾问和用户组成的生态系统,不断颠覆创新CRM,促进平等和多样性。作为初学者,探索Salesforce领域就像学习一门新语言。Salesforce中有着大量术语,从潜在客户、自定义对象到仪表板、记录类型等等......
  • 深入理解 C++11 多线程编程:从入门到实践
    C++多线程编程是指使用C++提供的多线程库来并行执行代码块,从而提高程序的性能和响应能力。C++11标准引入了多线程支持,使得在C++中进行多线程编程变得更加容易和直观。以下是C++多线程编程的基本知识,并附有例子代码。多线程的基本概念线程(Thread):线程是进程中的一个执......
  • ONNX Runtime入门示例:在C#中使用ResNet50v2进行图像识别
    ONNXRuntime简介ONNXRuntime是一个跨平台的推理和训练机器学习加速器。ONNX运行时推理可以实现更快的客户体验和更低的成本,支持来自深度学习框架(如PyTorch和TensorFlow/Keras)以及经典机器学习库(如scikit-learn、LightGBM、XGBoost等)的模型。ONNX运行时与不同的硬件、......
  • ComfyUI入门到精通教程|新手小白也能极速上手!
    前言Part1ComfyUI的介绍ComfyUI功能最强大、模块化程度最高的稳定扩散图形用户界面和后台。#麦克多娜AiComfyUI是一个基于节点流程式的stablediffusionAI绘图工具WebUI,你可以把它想象成集成了stablediffusion功能的substancedesigner,通过将stablediffusion的......
  • 【C语言入门】C语言入门:探索编程世界的基础概念
    ......
  • Vue3 从零到全掌握:最详尽的入门指南(近万字超全内容)
    一、Vue脚手架Vue3官方文档地址:https://v3.cn.vuejs.org/以前的官方脚手架@vue-cli也可以用,但这里推荐一个更轻快的脚手架Vite脚手架网址:Vite中文网方式一:vue-cli脚手架初始化Vue3项目官方文档:https://cli.vuejs.org/zh/guide/creating-a-project.html#vue-create// ......