高性能分析數(shù)據(jù)庫StarRocks的安裝與使用詳解
引言
在大數(shù)據(jù)時(shí)代,選擇一個(gè)高性能的分析數(shù)據(jù)庫對(duì)業(yè)務(wù)的成功至關(guān)重要。StarRocks作為一款次世代MPP(Massively Parallel Processing)數(shù)據(jù)庫,以其卓越的實(shí)時(shí)分析和多維分析能力而聞名。本篇文章將帶您探討StarRocks的安裝與使用,并探討其作為快速向量數(shù)據(jù)庫的潛力。
什么是StarRocks
StarRocks是一種高度并行的分析數(shù)據(jù)庫管理系統(tǒng),專為多維分析、實(shí)時(shí)分析和臨時(shí)查詢而設(shè)計(jì)。它憑借其向量化執(zhí)行引擎,在ClickBench基準(zhǔn)測試中展現(xiàn)了卓越的性能,被廣泛應(yīng)用于各種分析場景。
特性與優(yōu)勢
子秒查詢響應(yīng):利用向量化引擎,StarRocks可以提供極快的查詢響應(yīng)時(shí)間。
多維度分析:支持高效處理多維度的數(shù)據(jù)分析任務(wù)。
實(shí)時(shí)分析:具備強(qiáng)大的實(shí)時(shí)數(shù)據(jù)分析能力,適合動(dòng)態(tài)數(shù)據(jù)場景。
靈活的查詢能力:支持復(fù)雜的ad-hoc查詢,適合多種業(yè)務(wù)需求。
下載
文中使用版本為3.2.4,可通過官網(wǎng)自行下載
文章中使用的是存算一體架構(gòu),starrocks也支持存算分離架構(gòu)
安裝與配置
要開始使用StarRocks,我們首先需要設(shè)置必要的軟件環(huán)境。以下是安裝步驟:
# 安裝Python MySQL客戶端 pip install pymysql
測試語句
CREATE DATABASE example_db; USE example_db; -- 新建用戶并授權(quán) create user 'testuser'@'%' IDENTIFIED by '123456'; GRANT all ON databasename.* TO 'testuser'@'%'; -- 僅包含一個(gè) 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; -- 從本地文件導(dǎo)入數(shù)據(jù) 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 節(jié)點(diǎn)的 IP 地址和 HTTP 端口號(hào)。 SHOW FRONTENDS; -- 導(dǎo)入作業(yè) 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;
接下來,我們將使用一個(gè)例子來說明如何在Python中使用StarRocks庫。
代碼示例
假設(shè)我們想要在StarRocks中儲(chǔ)存和查詢向量數(shù)據(jù)。以下是一個(gè)簡單的使用示例:
from langchain_community.vectorstores import StarRocks # 假設(shè)我們通過API代理服務(wù)連接到StarRocks數(shù)據(jù)庫 starrocks_client = StarRocks(api_endpoint="{AI_URL}") # 使用API代理服務(wù)提高訪問穩(wěn)定性 # 插入樣本向量數(shù)據(jù) 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數(shù)據(jù)庫并執(zhí)行基本的向量插入和查詢操作。
常見問題和解決方案
連接超時(shí):在某些地區(qū),由于網(wǎng)絡(luò)限制,API調(diào)用可能會(huì)超時(shí)。建議使用API代理服務(wù)來提高連接的穩(wěn)定性和速度。
數(shù)據(jù)插入失敗:檢查數(shù)據(jù)庫權(quán)限設(shè)置,并確保數(shù)據(jù)格式與表結(jié)構(gòu)相匹配。
總結(jié)與進(jìn)一步學(xué)習(xí)資源
StarRocks作為高性能分析數(shù)據(jù)庫,在實(shí)時(shí)數(shù)據(jù)處理和復(fù)雜查詢場景中展現(xiàn)出色表現(xiàn)。對(duì)于想要深入了解StarRocks的開發(fā)者,可以參考以下資源:
通過這些學(xué)習(xí)資源,您可以獲得更多關(guān)于StarRocks配置、優(yōu)化和使用場景的深入知識(shí)。
參考資料
以上就是高性能分析數(shù)據(jù)庫StarRocks的安裝與使用詳解的詳細(xì)內(nèi)容,更多關(guān)于StarRocks數(shù)據(jù)庫安裝的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
數(shù)據(jù)庫查詢優(yōu)化(主從表的設(shè)計(jì))
寫過許多的數(shù)據(jù)庫查詢語句,面對(duì)過許多的問題,也在磕磕碰碰中學(xué)到了很多東西。昨天在看系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)與SQL代碼時(shí),突然“發(fā)現(xiàn)”了許多平常不屑看到的問題,于是就萌生了把它提出來思考的念頭2013-08-08dapper使用Insert或update時(shí)部分字段不映射到數(shù)據(jù)庫
我們在使用dapper的insert或update方法時(shí)可能會(huì)遇見一些實(shí)體中存在的字段但是,數(shù)據(jù)庫中不存在的字段,這樣在使用insert時(shí)就是拋出異常提示字段不存在,這個(gè)時(shí)候該怎么解決呢,下面給大家分享示例實(shí)體代碼,感興趣的朋友一起看看吧2023-12-12顏值與實(shí)用性并存的數(shù)據(jù)庫建模工具Chiner教程
這篇文章主要為大家介紹了一款顏值與實(shí)用性并存的數(shù)據(jù)庫建模工具Chiner,推薦大家使用,有需要的朋友可以共同學(xué)習(xí)參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03談?wù)剶?shù)據(jù)庫的字段設(shè)計(jì)的幾個(gè)心得
今天小編就為大家分享一篇關(guān)于談?wù)剶?shù)據(jù)庫的字段設(shè)計(jì)的幾個(gè)心得,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03redis密碼設(shè)置、訪問權(quán)限控制等安全設(shè)置
這篇文章主要介紹了redis密碼設(shè)置、訪問權(quán)限控制等安全設(shè)置,需要的朋友可以參考下2014-05-052024 Navicat Premium最新版簡體中文版激活永久圖文詳細(xì)教程(親測可用)
這篇文章主要介紹了2024 Navicat Premium最新版簡體中文版激活永久圖文詳細(xì)教程,文章通過圖文結(jié)合的方式給大家講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-09-09