Databend 玩轉(zhuǎn) Local 模式
目前開發(fā)者們需要嘗鮮 Databend, 可以選擇使用 Databend Cloud 或者按官方文檔部署 Databend 服務(wù)。 由于 Databend 架構(gòu)有三層,因此部署 Databend 服務(wù)一般需要啟動(dòng) "databend-query"
,?"databend-meta"
,?"minio"
三個(gè)進(jìn)程,同時(shí)需要修改端口等配置項(xiàng),流程上略顯復(fù)雜。 有沒有更快的方式可以快速嘗鮮 Databend 呢?
Python Binding
一種快速的方式是將 Databend 跑在 python 中,借助 rust 優(yōu)良的生態(tài),我們基于 pyo3 庫(kù)發(fā)布了 python binding,可以在本地 juypter 或者 colab 等在線服務(wù)中使用 Databend:
Databend Local 模式
借鑒于 "clickhouse-local"
,?"duckdb"
等嵌入型數(shù)據(jù)庫(kù)的優(yōu)點(diǎn),我們?cè)?Databend 中也可以開啟 local模式。
"local"
模式 是一個(gè) Databend 的簡(jiǎn)易版本,用戶無需部署 Databend 服務(wù)即可在命令中用SQL 和 Databend 交互。它的好處在于簡(jiǎn)化了開發(fā)安裝,同時(shí)方便開發(fā)者們用 SQL 使用Databend 支持的功能進(jìn)行簡(jiǎn)單的數(shù)據(jù)處理。 如果你需要在生產(chǎn)環(huán)境使用 Databend,我們建議按官網(wǎng)推薦部署 Databend服務(wù)或 Databend Cloud,但如果你是開發(fā)人員或測(cè)試工程師,你可以使用 "local"
模式 來玩轉(zhuǎn) Databend。
"local"
模式將啟動(dòng)一個(gè)臨時(shí)的 databend-query 進(jìn)程,這個(gè)進(jìn)程融合了 客戶端和服務(wù)端,并且他的存儲(chǔ)是在臨時(shí)目錄中,生命周期跟隨進(jìn)程,進(jìn)程離開后資源也將銷毀,你可以在一個(gè)服務(wù)器中啟動(dòng)多個(gè) "local"
進(jìn)程,他們的資源是相互隔離的。
下面通過例子介紹一下,每個(gè)例子都是簡(jiǎn)短的幾行命令,介紹?local
模式可以實(shí)現(xiàn)什么功能。
在這之前,你需要下載 databend-query 二進(jìn)制,然后將二進(jìn)制放到 PATH 環(huán)境變量中,植入
`??bend-local`?
工具別名
命令行交互 ( REPL ) 模式
直接在終端輸入 bend-local 這一行命令后,我們將進(jìn)入 REPL 模式,這里融合了客戶端和服務(wù)端,類似 duckdb cli 工具使用。
值得注意的是,bend-local 支持配置文件 "~/.config/databend/config.toml"
來做一些個(gè)性化客戶端配置,配置文件的格式和 bendsql 是兼容的。
一行命令生成一個(gè)parquet 文件
支持 --query, --output-format 參數(shù) 傳入查詢SQL 和 輸出格式
Shell pipe 模式分析數(shù)據(jù),? $STDIN 宏將解析 stdin 流作為一個(gè)臨時(shí) stage 表
注意上面的SQL在shell中,使用了 $ 來對(duì)shell進(jìn)行轉(zhuǎn)義
讀取 stage table (本地文件,外部 s3 等)
分析系統(tǒng)進(jìn)程 ,找出每個(gè)用戶占用的內(nèi)存
數(shù)據(jù)清洗,將一個(gè)格式轉(zhuǎn)換為其他格式 (支持csv, tsv, parquet, ndjson 等)
其他好玩的分析例子,等待你的挖掘