Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/cn/guides/20-self-hosted/00-editions/community.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,5 @@ Databend 社区版(Community)是 Databend 的开源版本,基于 **Apache
## 快速入门

- **[快速入门指南](/guides/self-hosted/quickstart)**:5 分钟快速上手
- **[下载与安装](/guides/self-hosted/deployment/download)**:私有化部署选项
- **[Docker 部署](/guides/self-hosted/deployment/deploying-local)**:私有化部署选项
- **[GitHub 仓库](https://github.com/databendlabs/databend)**:源代码与社区
134 changes: 28 additions & 106 deletions docs/cn/guides/20-self-hosted/01-quickstart/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,11 @@
title: 快速入门
---

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

## 1. 使用 Docker 启动 Databend
运行以下命令在容器中启动 Databend:
## 1. 启动 Databend

```
```shell
docker run -d \
--name databend \
--network host \
Expand All @@ -19,124 +17,48 @@ docker run -d \
--restart unless-stopped \
datafuselabs/databend
```
检查 Databend 是否成功运行:

:::tip 国内用户
如果拉取镜像较慢,可替换为国内镜像:
```shell
registry.databend.cn/public/databend:latest
```
docker logs -f databend
```
等待直到您看到日志显示 Databend 和 MinIO 已准备就绪。
:::

## 2. 连接到 Databend
安装 bendsql (Databend CLI):
等待 Databend 就绪:

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

连接到 Databend:
```
bendsql -udatabend -pdatabend
```
看到 `Databend Query started` 即表示启动成功。

## 3. 执行基本数据导入
### 步骤 1:创建外部存储桶 (myupload)
安装 mc (MinIO 客户端) 并创建存储桶:
## 2. 连接

```
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/
```
安装 BendSQL:

### 步骤 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;
```
| name | size | md5 | last_modified | creator |
|----------|--------|-------------------|-----------------------|-------------|
| String | UInt64 | Nullable(String) | String | Nullable(String) |
| data.csv | 104 | "a27fa15258911f534fb795a8c64e05d4" | 2025-04-12 00:51:11.015 +0000 | NULL |

预览 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) |
| id | name | age | city |
| 1 | John | 32 | New York |
| 2 | Emma | 28 | London |
| 3 | Liam | 35 | Paris |
| 4 | Olivia | 40 | Berlin |
| 5 | Noah | 29 | Tokyo |


### 步骤 4:创建表并加载数据
```shell
curl -fsSL https://repo.databend.com/install/bendsql.sh | bash
echo "export PATH=$PATH:~/.bendsql/bin" >> ~/.bash_profile
source ~/.bash_profile
```
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);
连接到 Databend:

```shell
bendsql -u databend -p databend
```

| File | Rows_loaded | Errors_seen | First_error | First_error_line |
|-----------|-------------|-------------|------------------|------------------|
| String | Int32 | Int32 | Nullable(String) | Nullable(Int32) |
| data.csv | 5 | 0 | NULL | NULL |
## 3. 验证

### 步骤 5:查询数据
```
SELECT * FROM t_person;
```sql
CREATE TABLE t (id INT, name VARCHAR);
INSERT INTO t VALUES (1, 'Databend');
SELECT * FROM t;
```
| id | name | age | city |
|----------|----------|----------|----------|
| Nullable(Int32) | Nullable(String) | Nullable(UInt32) | Nullable(String) |
| 1 | John | 32 | New York |
| 2 | Emma | 28 | London |
| 3 | Liam | 35 | Paris |
| 4 | Olivia | 40 | Berlin |
| 5 | Noah | 29 | Tokyo |

🚀 现在您已经成功将数据导入到 Databend 中了!
完成!如需了解分组件部署的方式,请参考[在 Docker 上部署](../02-deployment/01-deploying-local.md)。

## 替代方案:Databend Cloud
如果设置本地环境比较麻烦,您可以尝试 [Databend Cloud](https://www.databend.com) 获得完全托管的体验。

> 💬 **社区支持**
> 有疑问?联系我们的团队:
> 💬 [Slack 讨论](https://link.databend.com/join-slack)
如果不想搭建本地环境,可以直接使用 [Databend Cloud](https://www.databend.com) 的全托管服务。
195 changes: 195 additions & 0 deletions docs/cn/guides/20-self-hosted/02-deployment/01-deploying-local.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
---
title: 在 Docker 上部署
---

本指南使用 Docker Compose 分别启动 **databend-meta**、**databend-query** 和 **MinIO** 三个容器,帮助你理解 Databend 各组件的关系。

:::note 仅用于非生产环境
本方案仅适用于开发和本地测试,不适合生产环境或性能测试。
:::

### 开始之前

- 已安装 [Docker](https://www.docker.com/)(推荐 v26 及以上版本)。
- 已安装 [BendSQL](https://docs.databend.com/guides/connect/sql-clients/bendsql/#installing-bendsql)。

### 第一步:创建 docker-compose.yml

创建文件 `docker-compose.yml`,内容如下:

:::tip 国内用户
如果拉取 Docker Hub 镜像较慢,可将以下镜像替换为国内镜像源:
- `datafuselabs/databend-meta:latest` → `registry.databend.cn/public/databend-meta:latest`
- `datafuselabs/databend-query:latest` → `registry.databend.cn/public/databend-query:latest`
:::

```yaml
services:
minio:
image: minio/minio:latest
network_mode: "host"
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
volumes:
- minio-data:/data
entrypoint: |
sh -c "
minio server --address :9000 /data &
until mc alias set myminio http://localhost:9000 minioadmin minioadmin; do
echo 'Waiting for MinIO...';
sleep 1;
done;
if ! mc ls myminio/databend > /dev/null 2>&1; then
mc mb myminio/databend;
fi;
wait;
"

databend-meta:
image: datafuselabs/databend-meta:latest
network_mode: "host"
depends_on:
- minio
volumes:
- databend-meta-data:/data/
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:28101/v1/health"]
interval: 5s
timeout: 3s
retries: 10
entrypoint: sh -c "/databend-meta \
--log-file-level='warn' \
--log-file-format='text' \
--log-file-dir='/data/logs/' \
--log-file-limit=24 \
--admin-api-address='0.0.0.0:28101' \
--grpc-api-address='0.0.0.0:9191' \
--grpc-api-advertise-host='0.0.0.0' \
--raft-listen-host='0.0.0.0' \
--raft-api-port='28103' \
--raft-dir='/data/metadata' \
--id=1 \
--single"

databend-query:
image: datafuselabs/databend-query:latest
network_mode: "host"
depends_on:
databend-meta:
condition: service_healthy
volumes:
- query-logs:/var/log/databend/
- query-config:/etc/databend/
environment:
RUST_BACKTRACE: 1
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7070/metrics"]
interval: 10s
timeout: 5s
retries: 10
entrypoint: |
sh -c "
cat <<'EOF' > /etc/databend/databend-query.toml
[query]
max_active_sessions = 256
shutdown_wait_timeout_ms = 5000
flight_api_address = '0.0.0.0:9090'
metric_api_address = '0.0.0.0:7070'
tenant_id = 'default'
cluster_id = 'c01'

[[query.users]]
name = 'databend'
auth_type = 'double_sha1_password'
# password: databend
auth_string = '3081f32caef285c232d066033c89a96d542d09d7'

[log]
[log.file]
level = 'WARN'
format = 'text'
dir = '/var/log/databend'

[meta]
endpoints = ['0.0.0.0:9191']
username = 'root'
password = 'root'
client_timeout_in_second = 30
auto_sync_interval = 30

[storage]
type = 's3'
[storage.s3]
endpoint_url = 'http://127.0.0.1:9000'
region = 'us-east-1'
access_key_id = 'minioadmin'
secret_access_key = 'minioadmin'
bucket = 'databend'
EOF
exec /usr/bin/databend-query --config-file=/etc/databend/databend-query.toml
"

volumes:
minio-data:
databend-meta-data:
query-logs:
query-config:
```

### 第二步:启动 Databend

```shell
docker compose up -d
```

检查三个容器是否正常运行:

```shell
docker compose ps
```

查看 query 日志:

```shell
docker compose logs -f databend-query
```

看到 `Databend Query started` 即表示启动成功。

### 第三步:连接到 Databend

```shell
bendsql -u databend -p databend
```

执行一条简单查询验证:

```sql
SELECT NOW();
```

### 停止 Databend

```shell
docker compose stop
```

彻底删除容器和数据卷:

```shell
docker compose down -v
```

### 进阶配置

如需自定义配置,可以在外部准备好配置文件再 mount 到容器中,参考官方配置模板:

- databend-meta 配置:https://github.com/databendlabs/databend/blob/main/scripts/ci/deploy/config/databend-meta-node-1.toml
- databend-query 配置:https://github.com/databendlabs/databend/blob/main/scripts/ci/deploy/config/databend-query-node-1.toml

### 下一步

- [使用 COPY INTO 加载数据](/guides/load-data/load/s3)
- [通过 MySQL 客户端或 JDBC 连接](/guides/connect/)
- 生产环境部署请参考 [在 Kubernetes 上部署](/guides/self-hosted/deployment/production/deploying-databend-on-kubernetes)
Loading
Loading