• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    高性能分析数据库StarRocks的安装与使用详解

    发布者: 404号房间 | 发布时间: 2025-6-20 08:00| 查看数: 52| 评论数: 0|帖子模式

    引言

    在大数据时代,选择一个高性能的分析数据库对业务的成功至关重要。StarRocks作为一款次世代MPP(Massively Parallel Processing)数据库,以其卓越的实时分析和多维分析能力而闻名。本篇文章将带您探讨StarRocks的安装与使用,并探讨其作为快速向量数据库的潜力。

    什么是StarRocks

    StarRocks是一种高度并行的分析数据库管理系统,专为多维分析、实时分析和临时查询而设计。它凭借其向量化执行引擎,在ClickBench基准测试中展现了卓越的性能,被广泛应用于各种分析场景。

    特性与优势

    子秒查询响应:利用向量化引擎,StarRocks可以提供极快的查询响应时间。
    多维度分析:支持高效处理多维度的数据分析任务。
    实时分析:具备强大的实时数据分析能力,适合动态数据场景。
    灵活的查询能力:支持复杂的ad-hoc查询,适合多种业务需求。

    下载

    文中使用版本为3.2.4,可通过官网自行下载
    准备部署文件 | StarRocks
    文章中使用的是存算一体架构,starrocks也支持存算分离架构

    安装与配置

    要开始使用StarRocks,我们首先需要设置必要的软件环境。以下是安装步骤:
    1. # 安装Python MySQL客户端
    2. pip install pymysql
    复制代码
    测试语句
    1. CREATE DATABASE example_db;

    2. USE example_db;

    3. -- 新建用户并授权

    4. create user 'testuser'@'%' IDENTIFIED by '123456';

    5. GRANT all ON databasename.* TO 'testuser'@'%';

    6. -- 仅包含一个 BE,所以需要加PROPERTIES( "replication_num" = "1" )

    7. CREATE TABLE user_access (

    8.     uid int,

    9.     name varchar(64),

    10.     age int,

    11.     phone varchar(16),

    12.     last_access datetime,

    13.     credits double

    14. )

    15. PROPERTIES( "replication_num" = "1" );

    16. CREATE TABLE orders1 (

    17.     order_id bigint NOT NULL,

    18.     dt date NOT NULL,

    19.     user_id INT NOT NULL,

    20.     good_id INT NOT NULL,

    21.     cnt int NOT NULL,

    22.     revenue int NOT NULL

    23. )

    24. PRIMARY KEY (order_id)

    25. DISTRIBUTED BY HASH (order_id)

    26. PROPERTIES( "replication_num" = "1" )

    27. ;

    28. CREATE TABLE orders2 (

    29.     order_id bigint NOT NULL,

    30.     dt date NOT NULL,

    31.     merchant_id int NOT NULL,

    32.     user_id int NOT NULL,

    33.     good_id int NOT NULL,

    34.     good_name string NOT NULL,

    35.     price int NOT NULL,

    36.     cnt int NOT NULL,

    37.     revenue int NOT NULL,

    38.     state tinyint NOT NULL

    39. )

    40. PRIMARY KEY (order_id,dt,merchant_id)

    41. PARTITION BY date_trunc('day', dt)

    42. DISTRIBUTED BY HASH (merchant_id)

    43. ORDER BY (dt,merchant_id)

    44. PROPERTIES (

    45.     "enable_persistent_index" = "true",

    46. "replication_num" = "1"

    47. );

    48. CREATE TABLE detail (

    49.     event_time DATETIME NOT NULL COMMENT "datetime of event",

    50.     event_type INT NOT NULL COMMENT "type of event",

    51.     user_id INT COMMENT "id of user",

    52.     device_code INT COMMENT "device code",

    53.     channel INT COMMENT "")

    54. ORDER BY (event_time, event_type)

    55. PROPERTIES( "replication_num" = "1" );

    56. CREATE TABLE aggregate_tbl (

    57.     site_id LARGEINT NOT NULL COMMENT "id of site",

    58.     date DATE NOT NULL COMMENT "time of event",

    59.     city_code VARCHAR(20) COMMENT "city_code of user",

    60.     pv BIGINT SUM DEFAULT "0" COMMENT "total page views"

    61. )

    62. AGGREGATE KEY(site_id, date, city_code)

    63. DISTRIBUTED BY HASH(site_id)

    64. PROPERTIES( "replication_num" = "1" );

    65. CREATE TABLE orders4 (

    66.     create_time DATE NOT NULL COMMENT "create time of an order",

    67.     order_id BIGINT NOT NULL COMMENT "id of an order",

    68.     order_state INT COMMENT "state of an order",

    69.     total_price BIGINT COMMENT "price of an order"

    70. )

    71. UNIQUE KEY(create_time, order_id)

    72. DISTRIBUTED BY HASH(order_id);

    73. PROPERTIES( "replication_num" = "1" );

    74. DESCRIBE user_access;

    75. SHOW CREATE TABLE user_access;

    76. -- 从本地文件导入数据

    77. CREATE TABLE `table1`

    78. (

    79.     `id` int(11) NOT NULL COMMENT "用户 ID",

    80.     `name` varchar(65533) NULL COMMENT "用户姓名",

    81.     `score` int(11) NOT NULL COMMENT "用户得分"

    82. )

    83. ENGINE=OLAP

    84. PRIMARY KEY(`id`)

    85. DISTRIBUTED BY HASH(`id`)

    86. PROPERTIES( "replication_num" = "1" );

    87. -- 查看 FE 节点的 IP 地址和 HTTP 端口号。

    88. SHOW FRONTENDS;

    89. -- 导入作业

    90. curl --location-trusted -u root: -H "label:123" -H "Expect:100-continue" -H "column_separator:," -H "columns: id, name, score" -T D:\\data\\test.csv -XPUT http://192.168.5.66:8030/api/example_db/table1/_stream_load

    91. select * from table1;
    复制代码

    接下来,我们将使用一个例子来说明如何在Python中使用StarRocks库。

    代码示例

    假设我们想要在StarRocks中储存和查询向量数据。以下是一个简单的使用示例:
    1. from langchain_community.vectorstores import StarRocks

    2. # 假设我们通过API代理服务连接到StarRocks数据库
    3. starrocks_client = StarRocks(api_endpoint="{AI_URL}")  # 使用API代理服务提高访问稳定性

    4. # 插入样本向量数据
    5. vector_data = [0.1, 0.2, 0.3, 0.4]
    6. starrocks_client.insert_vector("your_vector_table", vector_data)

    7. # 查询向量
    8. query_result = starrocks_client.query_vector("your_vector_table", query_vector=[0.1, 0.2, 0.3])

    9. print("Query Result:", query_result)
    复制代码
    这段代码展示了如何连接到StarRocks数据库并执行基本的向量插入和查询操作。

    常见问题和解决方案

    连接超时:在某些地区,由于网络限制,API调用可能会超时。建议使用API代理服务来提高连接的稳定性和速度。
    数据插入失败:检查数据库权限设置,并确保数据格式与表结构相匹配。

    总结与进一步学习资源

    StarRocks作为高性能分析数据库,在实时数据处理和复杂查询场景中展现出色表现。对于想要深入了解StarRocks的开发者,可以参考以下资源:
    通过这些学习资源,您可以获得更多关于StarRocks配置、优化和使用场景的深入知识。
    参考资料
    以上就是高性能分析数据库StarRocks的安装与使用详解的详细内容,更多关于StarRocks数据库安装的资料请关注脚本之家其它相关文章!

    来源:https://www.jb51.net/database/337215946.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表