Deploy Databend With MinIO
tip
Expected deployment time: 5 minutes ⏱
This guideline will deploy Databend(standalone) with MinIO step by step.
1. Deploy MinIO
Run a standalone MinIO server via Docker:
docker run -d -p 9900:9000 --name minio \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /tmp/data:/data \
-v /tmp/config:/root/.minio \
minio/minio server /data
We recommend using aws cli to create a new MinIO bucket:
export AWS_ACCESS_KEY_ID=minioadmin
export AWS_SECRET_ACCESS_KEY=minioadmin
export AWS_EC2_METADATA_DISABLED=true
aws --endpoint-url http://127.0.0.1:9900/ s3 mb s3://databend
2. Download
You can find the latest binaries on the github release page.
mkdir databend && cd databend
- Linux
- MacOS
- Arm
curl -LJO https://github.com/datafuselabs/databend/releases/download/v0.6.90-nightly/databend-v0.6.90-nightly-x86_64-unknown-linux-gnu.tar.gz
curl -LJO https://github.com/datafuselabs/databend/releases/download/v0.6.90-nightly/databend-v0.6.90-nightly-aarch64-apple-darwin.tar.gz
curl -LJO https://github.com/datafuselabs/databend/releases/download/v0.6.90-nightly/databend-v0.6.90-nightly-aarch64-unknown-linux-gnu.tar.gz
- Linux
- MacOS
- Arm
tar xzvf databend-v0.6.90-nightly-x86_64-unknown-linux-gnu.tar.gz
tar xzvf databend-v0.6.90-nightly-aarch64-apple-darwin.tar.gz
tar xzvf databend-v0.6.90-nightly-aarch64-unknown-linux-gnu.tar.gz
3. Deploy databend-meta (standalone)
databend-meta is a global service for the meta data(such as user, table schema etc.).
3.1 Create databend-meta.toml
databend-meta.toml
log_dir = "metadata/_logs"
admin_api_address = "127.0.0.1:8101"
grpc_api_address = "127.0.0.1:9101"
[raft_config]
id = 1
single = true
raft_dir = "metadata/datas"
3.2 Start the databend-meta service
./databend-meta -c ./databend-meta.toml 2>&1 > meta.log&
3.3 Check databend-meta status
curl -I http://127.0.0.1:8101/v1/health
Check the response is HTTP/1.1 200 OK
.
4. Deploy databend-query (standalone)
4.1 Create databend-query.toml
databend-query.toml
[log]
log_level = "INFO"
log_dir = "benddata/_logs"
[query]
# For admin RESET API.
admin_api_address = "127.0.0.1:8001"
# Metrics.
metric_api_address = "127.0.0.1:7071"
# Cluster flight RPC.
flight_api_address = "127.0.0.1:9091"
# Query MySQL Handler.
mysql_handler_host = "127.0.0.1"
mysql_handler_port = 3307
# Query ClickHouse Handler.
clickhouse_handler_host = "127.0.0.1"
clickhouse_handler_port = 9001
# Query HTTP Handler.
http_handler_host = "127.0.0.1"
http_handler_port = 8081
tenant_id = "tenant1"
cluster_id = "cluster1"
[meta]
# databend-meta grpc api address.
meta_address = "127.0.0.1:9101"
meta_username = "root"
meta_password = "root"
[storage]
# disk|s3
storage_type = "s3"
[storage.disk]
[storage.s3]
bucket = "databend"
endpoint_url = "http://127.0.0.1:9900"
access_key_id = "minioadmin"
secret_access_key = "minioadmin"
4.2 Start databend-query
./databend-query -c ./databend-query.toml 2>&1 > query.log&
4.3 Check databend-query status
curl -I http://127.0.0.1:8001/v1/health
Check the response is HTTP/1.1 200 OK
.
5. Play
mysql -h127.0.0.1 -uroot -P3307
mysql>
create table t1(a int);
mysql>
insert into t1 values(1), (2);
mysql>
select * from t1
+------+
| a |
+------+
| 1 |
| 2 |
+------+