tencent cloud

弹性 MapReduce

动态与公告
产品动态
产品公告
安全公告
产品简介
产品概述
产品优势
产品架构
产品功能
应用场景
约束与限制
技术支持范围
产品发行版
购买指南
EMR on CVM 计费说明
EMR on TKE 计费说明
EMR Serverless HBase 计费说明
快速入门
EMR on CVM 快速入门
EMR on TKE 快速入门
EMR on CVM 操作指南
规划集群
管理权限
配置集群
管理集群
管理服务
监控告警
智能管家
EMR on TKE 操作指南
EMR on TKE 简介
配置集群
管理集群
管理服务
监控运维
应用分析
EMR Serverless HBase 操作指南
EMR Serverless HBase 产品简介
配额与限制
规划实例
管理实例
监控告警
开发指南
EMR 开发指南
Hadoop开发指南
Spark 开发指南
HBASE开发指南
Phoenix on Hbase 开发指南
Hive 开发指南
Presto开发指南
Sqoop 开发指南
Hue 开发指南
Oozie 开发指南
Flume 开发指南
Kerberos 开发指南
Knox 开发指南
Alluxio 开发指南
Kylin 开发指南
Livy 开发指南
Kyuubi 开发指南
Zeppelin 开发指南
Hudi 开发指南
Superset 开发指南
Impala 开发指南
Druid 开发指南
Tensorflow 开发指南
Kudu 开发指南
Ranger 开发指南
Kafka 开发指南
Iceberg 开发指南
StarRocks 开发指南
Flink 开发指南
JupyterLab 开发指南
MLflow 开发指南
实践教程
EMR on CVM 运维实践
数据迁移实践
自定义伸缩实践教程
API 文档
History
Introduction
API Category
Cluster Resource Management APIs
Cluster Services APIs
User Management APIs
Data Inquiry APIs
Scaling APIs
Configuration APIs
Other APIs
Serverless HBase APIs
YARN Resource Scheduling APIs
Making API Requests
Data Types
Error Codes
常见问题
EMR on CVM常见问题
服务等级协议
联系我们

基础使用指南

PDF
聚焦模式
字号
最后更新时间: 2025-01-03 15:02:25
目前 StarRocks 支持多种方式连接,下面简介使用 mysql 客户端连接 StarRocks 进行开发。

Root 用户登录

使用 MySQL 客户端连接某一个 FE 实例的 query_port(9030), StarRocks 内置 root 用户,密码默认与集群密码相同:
mysql -h fe_host -P9030 -u root -p
清理环境:
mysql > drop database if exists example_db;

mysql > drop user test;

查看部署节点

1. 查看 FE 节点。
mysql> SHOW PROC '/frontends'\\G

************************* 1. row ************************
Name: 172.16.139.24_9010_1594200991015
IP: 172.16.139.24
HostName: starrocks-sandbox01
EditLogPort: 9010
HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: true
ClusterId: 861797858
Join: true
Alive: true
ReplayedJournalId: 64
LastHeartbeat: 2020-03-23 20:15:07
IsHelper: true
ErrMsg:
1 row in set (0.03 sec)
Role 为 FOLLOWER 说明这是一个能参与选主的 FE;IsMaster 为 true,说明该 FE 当前为主节点。
2. 查看 BE 节点。
mysql> SHOW PROC '/backends'\\G

********************* 1. row **********************
BackendId: 10002
Cluster: default_cluster
IP: 172.16.139.24
HostName: starrocks-sandbox01
HeartbeatPort: 9050
BePort: 9060
HttpPort: 8040
BrpcPort: 8060
LastStartTime: 2020-03-23 20:19:07
LastHeartbeat: 2020-03-23 20:34:49
Alive: true
SystemDecommissioned: false
ClusterDecommissioned: false
TabletNum: 0
DataUsedCapacity: .000
AvailCapacity: 327.292 GB
TotalCapacity: 450.905 GB
UsedPct: 27.41 %
MaxDiskUsedPct: 27.41 %
ErrMsg:
Version:
1 row in set (0.01 sec)
如果 isAlive 为 true,则说明 BE 正常接入集群。如果 BE 没有正常接入集群,请查看 log 目录下的 be.WARNING 日志文件确定原因。
3. 查看 Broker 节点。
MySQL> SHOW PROC "/brokers"\\G
*************************** 1. row ***************************
Name: broker1
IP: 172.16.139.24
Port: 8000
Alive: true
LastStartTime: 2020-04-01 19:08:35
LastUpdateTime: 2020-04-01 19:08:45
ErrMsg:
1 row in set (0.00 sec)
Alive 为 true 代表状态正常。

创建新用户

通过下面的命令创建一个普通用户:
mysql > create user 'test' identified by '123456';

创建数据库

StarRocks 中 root 账户才有权建立数据库,使用 root 用户登录,建立 example_db 数据库:
mysql > create database example_db;
数据库创建完成之后,可以通过 show databases 查看数据库信息:
mysql > show databases;

+--------------------+
| Database |
+--------------------+
| example_db |
| information_schema |
+--------------------+
2 rows in set (0.00 sec)
information_schema 是为了兼容 mysql 协议而存在,实际中信息可能不是很准确,所以关于具体数据库的信息建议通过直接查询相应数据库而获得。

账户授权

example_db 创建完成之后,可以通过 root 账户 example_db 读写权限授权给 test 账户,授权之后采用 test 账户登录就可以操作 example_db 数据库了:
mysql > grant all on example_db to test;
退出 root 账户,使用 test 登录 StarRocks 集群:
mysql > exit

mysql -h 127.0.0.1 -P9030 -utest -p123456

建表

StarRocks 支持支持单分区和复合分区两种建表方式。 在复合分区中:
第一级称为 Partition,即分区。用户可以指定某一维度列作为分区列(当前只支持整型和时间类型的列),并指定每个分区的取值范围。
第二级称为 Distribution,即分桶。用户可以指定某几个维度列(或不指定,即所有 KEY 列)以及桶数对数据进行 HASH 分布。
以下场景推荐使用复合分区:
有时间维度或类似带有有序值的维度:可以以这类维度列作为分区列。分区粒度可以根据导入频次、分区数据量等进行评估。
历史数据删除需求:如有删除历史数据的需求(例如仅保留最近 N天的数据)。使用复合分区,可以通过删除历史分区来达到目的。也可以通过在指定分区内发送 DELETE 语句进行数据删除。
解决数据倾斜问题:每个分区可以单独指定分桶数量。如按天分区,当每天的数据量差异很大时,可以通过指定分区的分桶数,合理划分不同分区的数据,分桶列建议选择区分度大的列。
用户也可以不使用复合分区,即使用单分区。则数据只做 HASH 分布。 下面分别演示两种分区的建表语句:
1. 首先切换数据库:mysql > use example_db;
2. 建立单分区表建立一个名字为 table1的逻辑表。使用全 hash 分桶,分桶列为 siteid,桶数为10。这个表的 schema 如下:
siteid:类型是 INT(4字节), 默认值为10。
city_code:类型是 SMALLINT(2字节)。
username:类型是 VARCHAR, 最大长度为32, 默认值为空字符串。
pv:类型是 BIGINT(8字节), 默认值是0; 这是一个指标列, StarRocks 内部会对指标列做聚合操作, 这个列的聚合方法是求和(SUM)。这里采用了聚合模型,除此之外StarRocks 还支持明细模型和更新模型,具体参考 数据模型介绍。 建表语句如下:
mysql >
CREATE TABLE table1
(
siteid INT DEFAULT '10',
citycode SMALLINT,
username VARCHAR(32) DEFAULT '',
pv BIGINT SUM DEFAULT '0'
)
AGGREGATE KEY(siteid, citycode, username)
DISTRIBUTED BY HASH(siteid) BUCKETS 10
PROPERTIES("replication_num" = "1");
3. 建立复合分区表 建立一个名字为 table2的逻辑表。这个表的 schema 如下:
event_day:类型是 DATE,无默认值。
siteid:类型是 INT(4字节), 默认值为10。
city_code:类型是 SMALLINT(2字节)。
username:类型是 VARCHAR, 最大长度为32, 默认值为空字符串。
pv:类型是 BIGINT(8字节), 默认值是0; 这是一个指标列, StarRocks 内部会对指标列做聚合操作, 这个列的聚合方法是求和(SUM)。 我们使用 event_day 列作为分区列,建立3个分区: p1, p2, p3
p1:范围为 [最小值, 2017-06-30)。
p2:范围为 [2017-06-30, 2017-07-31)。
p3:范围为 [2017-07-31, 2017-08-31)。
每个分区使用 siteid 进行哈希分桶,桶数为10。 建表语句如下:
CREATE TABLE table2
(
event_day DATE,
siteid INT DEFAULT '10',
citycode SMALLINT,
username VARCHAR(32) DEFAULT '',
pv BIGINT SUM DEFAULT '0'
)
AGGREGATE KEY(event_day, siteid, citycode, username)
PARTITION BY RANGE(event_day)
(
PARTITION p1 VALUES LESS THAN ('2017-06-30'),
PARTITION p2 VALUES LESS THAN ('2017-07-31'),
PARTITION p3 VALUES LESS THAN ('2017-08-31')
)
DISTRIBUTED BY HASH(siteid) BUCKETS 10
PROPERTIES("replication_num" = "1");
表建完之后,可以查看 example_db 中表的信息:
mysql> show tables;

+-------------------------+
| Tables_in_example_db |
+-------------------------+
| table1 |
| table2 |
+-------------------------+
2 rows in set (0.01 sec)


mysql> desc table1;

+----------+-------------+------+-------+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-------+---------+-------+
| siteid | int(11) | Yes | true | 10 | |
| citycode | smallint(6) | Yes | true | N/A | |
| username | varchar(32) | Yes | true | | |
| pv | bigint(20) | Yes | false | 0 | SUM |
+----------+-------------+------+-------+---------+-------+
4 rows in set (0.00 sec)


mysql> desc table2;

+-----------+-------------+------+-------+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-------+---------+-------+
| event_day | date | Yes | true | N/A | |
| siteid | int(11) | Yes | true | 10 | |
| citycode | smallint(6) | Yes | true | N/A | |
| username | varchar(32) | Yes | true | | |
| pv | bigint(20) | Yes | false | 0 | SUM |
+-----------+-------------+------+-------+---------+-------+
5 rows in set (0.00 sec)

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈