欢迎投稿

今日深度:

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

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


目录
  • 引言
  • 什么是StarRocks
    • 特性与优势
    • 下载
    • 安装与配置
  • 测试语句
    • 代码示例
      • 常见问题和解决方案
        • 总结与进一步学习资源

          引言

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

          什么是StarRocks

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

          特性与优势

          子秒查询响应:利用向量化引擎,StarRocks可以提供极快的查询响应时间。

          多维度分析:支持高效处理多维度的数据分析任务。

          实时分析:具备强大的实时数据分析能力,适合动态数据场景。

          灵活的查询能力:支持复杂的ad-hoc查询,适合多种业务需求。

          下载

          文中使用版本为3.2.4,可通过官网自行下载

          准备部署文件 | StarRocks

          文章中使用的是存算一体架构,starrocks也支持存算分离架构

          安装与配置

          要开始使用StarRocks,我们首先需要设置必要的软件环境。以下是安装步骤:

          # 安装Python MySQL客户端
          pip install pymysql
          

          测试语句

          CREATE DATABASE example_db;
          
          USE example_db;
          
          -- 新建用户并授权
          
          create user 'testuser'@'%' IDENTIFIED by '123456';
          
          GRANT all ON databasename.* TO 'testuser'@'%';
          
          -- 仅包含一个 BE,所以需要加PROPERTIES( "replication_num" = "1" )
          
          CREATE TABLE user_access (
          
              uid int,
          
              name varchar(64),
          
              age int,
          
              phone varchar(16),
          
              last_access datetime,
          
              credits double
          
          )
          
          PROPERTIES( "replication_num" = "1" );
          
          CREATE TABLE orders1 (
          
              order_id bigint NOT NULL,
          
              dt date NOT NULL,
          
              user_id INT NOT NULL,
          
              good_id INT NOT NULL,
          
              cnt int NOT NULL,
          
              revenue int NOT NULL
          
          )
          
          PRIMARY KEY (order_id)
          
          DISTRIBUTED BY HASH (order_id)
          
          PROPERTIES( "replication_num" = "1" )
          
          ;
          
          CREATE TABLE orders2 (
          
              order_id bigint NOT NULL,
          
              dt date NOT NULL,
          
              merchant_id int NOT NULL,
          
              user_id int NOT NULL,
          
              good_id int NOT NULL,
          
              good_name string NOT NULL,
          
              price int NOT NULL,
          
              cnt int NOT NULL,
          
              revenue int NOT NULL,
          
              state tinyint NOT NULL
          
          )
          
          PRIMARY KEY (order_id,dt,merchant_id)
          
          PARTITION BY date_trunc('day', dt)
          
          DISTRIBUTED BY HASH (merchant_id)
          
          ORDER BY (dt,merchant_id)
          
          PROPERTIES (
          
              "enable_persistent_index" = "true",
          
          "replication_num" = "1"
          
          );
          
          CREATE TABLE detail (
          
              event_time DATETIME NOT NULL COMMENT "datetime of event",
          
              event_type INT NOT NULL COMMENT "type of event",
          
              user_id INT COMMENT "id of user",
          
              device_code INT COMMENT "device code",
          
              channel INT COMMENT "")
          
          ORDER BY (event_time, event_type)
          
          PROPERTIES( "replication_num" = "1" );
          
          CREATE TABLE aggregate_tbl (
          
              site_id LARGEINT NOT NULL COMMENT "id of site",
          
              date DATE NOT NULL COMMENT "time of event",
          
              city_code VARCHAR(20) COMMENT "city_code of user",
          
              pv BIGINT SUM DEFAULT "0" COMMENT "total page views"
          
          )
          
          AGGREGATE KEY(site_id, date, city_code)
          
          DISTRIBUTED BY HASH(site_id)
          
          PROPERTIES( "replication_num" = "1" );
          
          CREATE TABLE orders4 (
          
              create_time DATE NOT NULL COMMENT "create time of an order",
          
              order_id BIGINT NOT NULL COMMENT "id of an order",
          
              order_state INT COMMENT "state of an order",
          
              total_price BIGINT COMMENT "price of an order"
          
          )
          
          UNIQUE KEY(create_time, order_id)
          
          DISTRIBUTED BY HASH(order_id);
          
          PROPERTIES( "replication_num" = "1" );
          
          DESCRIBE user_access;
          
          SHOW CREATE TABLE user_access;
          
          -- 从本地文件导入数据
          
          CREATE TABLE `table1`
          
          (
          
              `id` int(11) NOT NULL COMMENT "用户 ID",
          
              `name` varchar(65533) NULL COMMENT "用户姓名",
          
              `score` int(11) NOT NULL COMMENT "用户得分"
          
          )
          
          ENGINE=OLAP
          
          PRIMARY KEY(`id`)
          
          DISTRIBUTED BY HASH(`id`)
          
          PROPERTIES( "replication_num" = "1" );
          
          -- 查看 FE 节点的 IP 地址和 HTTP 端口号。
          
          SHOW FRONTENDS;
          
          -- 导入作业
          
          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
          
          select * from table1;

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

          代码示例

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

          from langchain_community.vectorstores import StarRocks
          
          # 假设我们通过API代理服务连接到StarRocks数据库
          starrocks_client = StarRocks(api_endpoint="{AI_URL}")  # 使用API代理服务提高访问稳定性
          
          # 插入样本向量数据
          vector_data = [0.1, 0.2, 0.3, 0.4]
          starrocks_client.insert_vector("your_vector_table", vector_data)
          
          # 查询向量
          query_result = starrocks_client.query_vector("your_vector_table", query_vector=[0.1, 0.2, 0.3])
          
          print("Query Result:", query_result)
          

          这段代码展示了如何连接到StarRocks数据库并执行基本的向量插入和查询操作。

          常见问题和解决方案

          连接超时:在某些地区,由于网络限制,API调用可能会超时。建议使用API代理服务来提高连接的稳定性和速度。

          数据插入失败:检查数据库权限设置,并确保数据格式与表结构相匹配。

          总结与进一步学习资源

          StarRocks作为高性能分析数据库,在实时数据处理和复杂查询场景中展现出色表现。对于想要深入了解StarRocks的开发者,可以参考以下资源:

          • StarRocks 官方文档
          • ClickBench 基准测试结果

          通过这些学习资源,您可以获得更多关于StarRocks配置、优化和使用场景的深入知识。

          参考资料

          • StarRocks 官网
          • ClickBench 基准测试

          以上就是高性能分析数据库StarRocks的安装与使用详解的详细内容,更多关于StarRocks数据库安装的资料请关注PHP之友其它相关文章!

          您可能感兴趣的文章:
          • Python定时查询starrocks数据库并将结果保存在excel
          • StarRocks简介与搭建使用详解
          • Spring Boot集成starrocks快速入门Demo(适用场景)
          • 使用go备份StarRocks建表语句方法实例
          • 得物基于StarRocks的OLAP需求实践详解
          • StarRocks数据库详解(什么是StarRocks)

          www.htsjk.Com true http://www.htsjk.com/shujukunews/48818.html NewsArticle 高性能分析数据库StarRocks的安装与使用详解, 目录 引言 什么是StarRocks 特性与优势 下载 安装与配置 测试语句 代码示例 常见问题和解决方案 总结与进一步学习资源 引言 在大数据时代...
          评论暂时关闭