跳到主要内容

QuickStart

Databend 快速入门:5 分钟体验 Databend 本指南将帮助您快速设置 Databend、连接到它并执行基本的数据导入。

1. 使用 Docker 启动 Databend

运行以下命令以在容器中启动 Databend:

docker run -d \
--name databend \
--network host \
-e MINIO_ENABLED=true \
-e QUERY_DEFAULT_USER=databend \
-e QUERY_DEFAULT_PASSWORD=databend \
-v minio_data_dir:/var/lib/minio \
--restart unless-stopped \
datafuselabs/databend

检查 Databend 是否成功运行:

docker logs -f databend

等待直到您看到日志表明 Databend 和 MinIO 已准备就绪。

2. 连接到 Databend

安装 bendsql (Databend CLI):

curl -fsSL https://repo.databend.com/install/bendsql.sh | bash
echo "export PATH=$PATH:~/.bendsql/bin" >>~/.bash_profile
source ~/.bash_profile

连接到 Databend:

bendsql -udatabend -pdatabend

3. 执行基本数据导入

步骤 1:创建外部 Bucket (myupload)

安装 mc (MinIO client) 并创建一个 bucket:

wget https://dl.min.io/client/mc/release/linux-amd64/mc
sudo cp mc /usr/local/bin/ && sudo chmod +x /usr/local/bin/mc
mc alias set myminio http://localhost:9000 minioadmin minioadmin
mc mb myminio/myupload
mc ls myminio

预期输出:

[0001-01-01 08:05:43 LMT]     0B databend/
[2025-04-12 08:43:59 CST] 0B myupload/

步骤 2:生成 CSV 并上传到 myupload

echo -e "id,name,age,city\n1,John,32,New York\n2,Emma,28,London\n3,Liam,35,Paris\n4,Olivia,40,Berlin\n5,Noah,29,Tokyo" > data.csv
mc cp data.csv myminio/myupload/
mc ls myminio/myupload/

步骤 3:创建外部 Stage 并检查数据

在 bendsql 中运行:

CREATE STAGE mystage 's3://myupload' 
CONNECTION=(
endpoint_url='http://127.0.0.1:9000',
access_key_id='minioadmin',
secret_access_key='minioadmin',
region='us-east-1'
);

显示外部 Stage @mystage 中的文件:

LIST @mystage;
namesizemd5last_modifiedcreator
StringUInt64Nullable(String)StringNullable(String)
data.csv104"a27fa15258911f534fb795a8c64e05d4"2025-04-12 00:51:11.015 +0000NULL

预览 CSV 数据:

SELECT $1, $2, $3, $4 FROM @mystage/data.csv (FILE_FORMAT=>'CSV') LIMIT 10;
$1$2$3$4
Nullable(String)Nullable(String)Nullable(String)Nullable(String)
idnameagecity
1John32New York
2Emma28London
3Liam35Paris
4Olivia40Berlin
5Noah29Tokyo

步骤 4:创建表并加载数据

CREATE DATABASE wubx;
USE wubx;

CREATE TABLE t_person (
id INT,
name VARCHAR,
age INT UNSIGNED,
city VARCHAR
);

COPY INTO t_person FROM @mystage PATTERN='.*[.]csv' FILE_FORMAT=(TYPE=CSV, SKIP_HEADER=1);

FileRows_loadedErrors_seenFirst_errorFirst_error_line
StringInt32Int32Nullable(String)Nullable(Int32)
data.csv50NULLNULL

步骤 5:查询数据

SELECT * FROM t_person;
idnameagecity
Nullable(Int32)Nullable(String)Nullable(UInt32)Nullable(String)
1John32New York
2Emma28London
3Liam35Paris
4Olivia40Berlin
5Noah29Tokyo

🚀 现在您已成功将数据导入 Databend!

Alternative: Databend Cloud

如果设置本地环境很麻烦,您可以尝试 Databend Cloud 以获得完全托管的体验。

💬 社区支持
有问题?与我们的团队联系:
💬 Slack Discussion