当前位置: 首页 > 工具软件 > Databend > 使用案例 >

Databend使用入门

洪梓
2023-12-01

Databend官网 :专注于打造全球最强云数仓,弹性、简单、低成本,支持mysql、clickhouse有线连接协议(白话就是可以直接用它们的客户端连接Databend服务)。

Databend启动

Databend默认是使用本地文件系统,可以支持很多知名的OSS,这里我用到了Minio存储容器,所以多了一步Minio的启动。

启动Minio存储容器

Minio的使用就不多赘述了,这里我提前打入docker了,详细见Minio官网。

docker ps -a命令查询,如果已经创建了Minio容器,可以直接docker start 容器名 命令来启动。

否则安装Minio容器并配置(详细配置信息见Databend官网)。

手动部署节点

./databend-meta -c ./configs/databend-meta.toml > meta.log 2>&1 &
./databend-query -c ./configs/databend-query.toml > query.log 2>&1 &

测试节点是否可用

curl -I  http://127.0.0.1:28101/v1/health
curl -I  http://127.0.0.1:8081/v1/health

Shell部署节点

手动太麻烦了,直接上Shell脚本(手动加上执行权限chmod +x xx.sh),现在我们下载发布版的时候是有自带脚本文件的,这个是我以前写的Shell。

start.sh

path="/usr/bin/databend/bin"
${path}/databend-meta -c ./configs/databend-meta.toml > meta.log 2>&1 &
${path}/databend-query -c ./configs/databend-query.toml > query.log 2>&1 &

stop.sh

# get pid list
ls=`ps -elf | grep databend | head -n 2 | awk '{print $4}'`
# 切割字符串
len=0
for pid in ${ls[*]}
do
    pids[len]=$pid
    len=`expr $len + 1`
    # echo ${pid}
done
# pids数组长度大于1
if [ ${#pids[@]} -gt 1 ]
then
    for i in ${pids[*]}
    do
        kill -9 ${i}
    done
    echo "databend is stoped"
else
    echo "databend no starting"
fi

con_test.sh

echo '----------server-status-------------'
curl -I  http://127.0.0.1:8101/v1/health
curl -I  http://127.0.0.1:8001/v1/health
echo '----------process-info-------------'
ps -elf | grep databend

连接

本地连接

mysql -uroot -h 127.0.0.1 -P3307

外部连接

创建用户并授权:

CREATE USER user1 IDENTIFIED WITH no_password;
GRANT ALL ON *.* TO user1;

如果创建的用户是有密码的连接时会出错(待解决):

CREATE USER user1 IDENTIFIED WITH sha256_password BY '1234';
GRANT ALL ON *.* TO user1;
# 连接时会出现下面的错误,不知道怎么解决,好像主要是服务端的问题
> mysql -uuser1 -p1234 -h 192.168.81.134 -P3307
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1698 (28000): Authenticate failed, user: "user1", auth_plugin: "mysql_native_password"

连接:

mysql -uuser1 -h [ip] -P3307

Databend meta-info

获取某个database的所有table信息

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = [databaseName] and table_type='BASE TABLE' 

获得所有简略的column信息

select column_name,data_type,is_nullable,column_default,table_name from INFORMATION_SCHEMA.COLUMNS;
 类似资料: