部署独立模式的 Databend
部署独立模式的 Databend
Databend支持自托管和云对象存储解决方案。 本专题介绍如何部署一个独立模式的Databend。 Databend 支持的对象存储解决方案见 了解部署模式。
设置您的对象存储
- MinIO
- Amazon S3
- Google GCS
- Tencent COS
- Alibaba OSS
- Wasabi
- QingCloud QingStor
- Azure Blob Storage
- Huawei Cloud OBS
a. 参考 MinIO Quickstart Guide 下载并安装 MinIO 到您的本地机器。
b. 打开终端窗口并导航到存放 MinIO 的文件夹。
c. 运行命令vim server.sh
来创建一个包含以下内容的文件:
~/minio$ cat server.sh
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=minioadmin
./minio server --address :9900 ./data
d. 运行以下命令来启动 MinIO 服务器:
chmod +x server.sh
./server.sh
e. 用浏览器打开http://127.0.0.1:9900并输入账号(`minioadmin` / minioadmin
) ,登录到 MinIO 控制台。
f. 在 MinIO 控制台中,创建一个名为 databend
的 bucket。
在部署 Databend 之前,请确保您已经成功地在云端设置您的对象存储环境, 以下任务已完成:
- 创建一个名为
databend
的 bucket 或容器。 - 获取连接到您创建的 bucket 或容器的端点URL。
- 获取您账户的访问密钥ID和秘密访问密钥。
关于如何管理 bucket 和访问密钥,请参阅对象存储解决方案提供商的用户手册。 以下链接可能对您有帮助:
在部署 Databend 之前,请确保您已经成功地在云端设置您的对象存储环境, 以下任务已完成:
- 创建一个名为
databend
的 bucket 或容器。 - 获取您的 Google 云存储 OAuth2 凭据。
关于如何管理 bucket 和 OAuth2 凭据,请参阅对象存储解决方案提供商的用户手册。 以下链接可能对您有帮助:
在部署 Databend 之前,请确保您已经成功地在云端设置您的对象存储环境, 以下任务已完成:
- 创建一个名为
databend
的 bucket 或容器。 - 获取连接到您创建的 bucket 或容器的端点URL。
- 获取您账户的访问密钥ID和秘密访问密钥。
关于如何管理 bucket 和访问密钥,请参阅对象存储解决方案提供商的用户手册。 以下链接可能对您有帮助:
在部署 Databend 之前,请确保您已经成功地在云端设置您的对象存储环境, 以下任务已完成:
- 创建一个名为
databend
的 bucket 或容器。 - 获取连接到您创建的 bucket 或容器的端点URL。
- 获取您账户的访问密钥ID和秘密访问密钥。
关于如何管理 bucket 和访问密钥,请参阅对象存储解决方案提供商的用户手册。 以下链接可能对您有帮助:
在部署 Databend 之前,请确保您已经成功地在云端设置您的对象存储环境, 以下任务已完成:
- 创建一个名为
databend
的 bucket 或容器。 - 获取连接到您创建的 bucket 或容器的端点URL。
- 获取您账户的访问密钥ID和秘密访问密钥。
关于如何管理 bucket 和访问密钥,请参阅对象存储解决方案提供商的用户手册。 以下链接可能对您有帮助:
在部署 Databend 之前,请确保您已经成功地在云端设置您的对象存储环境, 以下任务已完成:
- 创建一个名为
databend
的 bucket 或容器。 - 获取连接到您创建的 bucket 或容器的端点URL。
- 获取您账户的访问密钥ID和秘密访问密钥。
关于如何管理 bucket 和访问密钥,请参阅对象存储解决方案提供商的用户手册。 以下链接可能对您有帮助:
在部署 Databend 之前,请确保您已经成功地在云端设置您的对象存储环境, 以下任务已完成:
- 创建一个名为
databend
的 bucket 或容器。 - 获取连接到您创建的 bucket 或容器的端点URL。
- 获取您账户的访问密钥ID和秘密访问密钥。
关于如何管理 bucket 和访问密钥,请参阅对象存储解决方案提供商的用户手册。 以下链接可能对您有帮助:
在部署 Databend 之前,请确保您已经成功地在云端设置您的对象存储环境, 以下任务已完成:
- 创建一个名为
databend
的 bucket 或容器。 - 获取连接到您创建的 bucket 或容器的端点URL。
- 获取您账户的访问密钥ID和秘密访问密钥。
关于如何管理 bucket 和访问密钥,请参阅对象存储解决方案提供商的用户手册。 以下链接可能对您有帮助:
下载 Databend
a. Create a folder named databend
in the directory /usr/local
.
b. 从 Github 下载并提取最新版本的 Databend:
- Linux(x86)
- Linux(arm)
- MacOS(x86)
- MacOS(arm)
curl -LJO https://github.com/datafuselabs/databend/releases/download/${version}/databend-${version}-x86_64-unknown-linux-musl.tar.gz
curl -LJO https://github.com/datafuselabs/databend/releases/download/${version}/databend-${version}-aarch64-unknown-linux-musl.tar.gz
curl -LJO https://github.com/datafuselabs/databend/releases/download/${version}/databend-${version}-x86_64-apple-darwin.tar.gz
curl -LJO https://github.com/datafuselabs/databend/releases/download/${version}/databend-${version}-aarch64-apple-darwin.tar.gz
- Linux(x86)
- Linux(arm)
- MacOS(x86)
- MacOS(arm)
tar xzvf databend-${version}-x86_64-unknown-linux-musl.tar.gz
tar xzvf databend-${version}-aarch64-unknown-linux-musl.tar.gz
tar xzvf databend-${version}-x86_64-apple-darwin.tar.gz
tar xzvf databend-${version}-aarch64-apple-darwin.tar.gz
c. 将提取的 bin
, configs
, 和 scripts
文件夹移动到 /usr/local/databend
。
部署 Meta 节点
a. 在文件夹 /usr/local/databend/configs
中打开文件 databend-meta.toml
, 把所有的127.0.0.1
替换成0.0.0.0
。
b. Open a terminal window and navigate to the folder /usr/local/databend/bin
.
c. 运行以下命令来启动 Meta 节点:
./databend-meta -c ../configs/databend-meta.toml > meta.log 2>&1 &
d. 运行以下命令来检查 Meta 节点是否成功启动:
curl -I http://127.0.0.1:28101/v1/health
部署查询节点
a. 在文件夹 /usr/local/databend/configs
中打开文件 databend-query.toml
, 把所有的127.0.0.1
替换成0.0.0.0
。
b. 在文件 databend-query.toml
中,如果您正在使用 S3 兼容的对象存储,请将[storage] 模块下的参数 type
设置为 s3
;如果您正在使用 Azure Blob存储,设置为 azblob
。
[storage]
# fs | s3 | azblob | gcs | obs
type = "s3"
c. 先把 [storage.fs]
模块注释掉;如果您使用S3 兼容的对象存储,把 [storage.s3]
模块取消注释;如果使用 Azure Blob存储,则把[storage.azblob]
模块取消注释。
# Set a local folder to store your data.
# Comment out this block if you're NOT using local file system as storage.。
#[storage.fs]
#data_path = "benddata/datas"
# To use S3-compatible object storage, uncomment this block and set your values.
[storage.s3]
bucket = "<your-bucket-name>"
endpoint_url = "<your-endpoint>"
access_key_id = "<your-key-id>"
secret_access_key = "<your-account-key>"
# To use Azure Blob storage, uncomment this block and set your values.
# [storage.azblob]
# endpoint_url = "https://<your-storage-account-name>.blob.core.windows。 et"
# container = "<your-azure-storage-container-name>"
# account_name = "<your-storage-account-name>"
# account_key = "<your-account-key>"
# To use Google Cloud Storage, uncomment this block and set your values.
# [storage.gcs]
# bucket = "<your-bucket-name>"
# credential = "<your-credential>"
# To use Huawei Cloud OBS Storage, uncomment this block and set your values.
# [storage.obs]
# bucket = "<your-bucket-name>"
# endpoint_url = "<your-endpoint>"
# access_key_id = "<your-key-id>"
# secret_access_key = "<your-account-key>"
d. 设置 [storage.s3]
, [storage.azblob]
,[storage.gcs]
或 [storage.obs]
模块。 请注意字段 endpoint_url
是指您存储区域的服务 URL 并且根据您使用的对象存储解决方案而变化:
- MinIO
- Amazon S3
- Google GCS
- Tencent COS
- Alibaba OSS
- Wasabi
- QingCloud QingStor
- Azure Blob Storage
- Huawei Cloud OBS
[storage]
# s3
type = "s3"
[storage.s3]
bucket = "databend"
endpoint_url = "http://127.0.0.1:9900"
access_key_id = "minioadmin"
secret_access_key = "minioadmin"
[storage]
# s3
type = "s3"
[storage.s3]
# https://docs.aws.amazon om/AmazonS3/latest/userguide/create-bucket-overview.html
bucket = "databend"
endpoint_url = "https://s3。 mozonaws.com"
# How to get access_key_id and secret_access_key:
# https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html
// highlight-next line
access_key_id = "<your-key-id>"
secret_access_key = "<your-access-key>"
[storage]
# gcs
type = "gcs"
[storage.gcs]
# How to create a bucket:
# https://cloud.google.com/storage/docs/creating-buckets
bucket = "databend-1.048596"
# GCS also supports changing the endpoint URL
# but the endpoint should be compatible with GCS's JSON API
# default:
# endpoint_url = "https://storage.googleapis.com/"
# working directory of GCS
# default:
# root = "/"
credential = "<your-credential>"
[storage]
# s3
type = "s3"
[storage.s3]
# How to create a bucket:
# https://cloud.tencent.com/document/product/436/13309
bucket = "databend-1253727613"
# You can get the URL from the bucket detail page.
endpoint_url = "https://cos.ap-beijing.myqcloud.com"
# How to get access_key_id and secret_access_key:
# https://cloud.tencent.com/document/product/436/68282
access_key_id = "<your-key-id>"
secret_access_key = "<your-access-key>"
在这个示例中,COS 区域是 ap-beijing
。
[storage]
# s3
type = "s3"
[storage.s3]
# How to create a bucket:
bucket = "databend"
# You can get the URL from the bucket detail page.
# https://help.aliyun.com/document_detail/31837.htm
# https://<bucket-name>.<region-id>[-internal].aliyuncs.com
endpoint_url = "https://oss-cn-beijing-internal.aliyuncs.com"
enable_virtual_host_style = true
# How to get access_key_id and secret_access_key:
# https://help.aliyun.com/document_detail/53045.htm
access_key_id = "<your-key-id>"
secret_access_key = "<your-access-key>"
在这个示例中,OSS 区域 ID 是 oss-cn-beijing-internal
。
[storage]
# s3
type = "s3"
[storage.s3]
# How to create a bucket:
bucket = "<your-bucket>"
# You can get the URL from:
# https://wasabi-support.zendesk.com/hc/en-us/articles/360015106031-What-are-the-service-URLs-for-Wasabi-s-different-regions-
endpoint_url = "https://s3.us-east-2.wasabisys.com"
# How to get access_key_id and secret_access_key:
access_key_id = "<your-key-id>"
secret_access_key = "<your-access-key>"
在这个示例中,Wasabi 区域是 us-east-2
。
[storage]
# s3
type = "s3"
[storage.s3]
bucket = "databend"
# You can get the URL from the bucket detail page.
# https://docsv3.qingcloud.com/storage/object-storage/intro/object-storage/#zone
endpoint_url = "https://s3.pek3b.qingstor.com"
# How to get access_key_id and secret_access_key:
# https://docs.qingcloud.com/product/api/common/overview.html
access_key_id = "<your-key-id>"
secret_access_key = "<your-access-key>"
在这个示例中,QingStor 区域是 pek3b
。
[storage]
# azblob
type = "azblob"
[storage.azblob]
endpoint_url = "https://<your-storage-account-name>.blob.core.windows.net"
# https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal#create-a-container
container = "<your-azure-storage-container-name>"
account_name = "<your-storage-account-name>"
# https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal#view-account-access-keys
account_key = "<your-account-key>"
[storage]
# obs
type = "obs"
[storage.obs]
# How to create a bucket:
# https://support.huaweicloud.com/intl/en-us/usermanual-obs/en-us_topic_0045853662.html
bucket = "databend"
# You can get the URL from the bucket detail page.
endpoint_url = "https://obs.cn-north-4.myhuaweicloud.com"
# How to get access_key_id and secret_access_key:
# https://support.huaweicloud.com/intl/en-us/api-obs/obs_04_0116.html
access_key_id = "<your-key-id>"
secret_access_key = "<your-access-key>"
在这个示例中,OBS 区域是 cn-nort-4
。
e. Open a terminal window and navigate to the folder /usr/local/databend/bin
.
f. 运行以下命令来启动查询节点:
./databend-query -c ../configs/databend-query.toml > query.log 2>&1 &
g. 运行以下命令来检查查询节点是否成功启动:
curl -I http://127.0.0.1:8080/v1/health
验证部署
在本节中,我们进行一些查询来验证部署。
a. 下载并在本地安装 MySQL 客户端。
b. Create a connection to 127.0.0.1 from your SQL client. In the connection, set the port to 3307
, and set the username to root
.
创建新用户。 root
用户只能在访问本地安装的 Databend 时使用。 您需要创建新用户并授予适当的权限,才能远程连接到Databend。 For example,
-- Create a user named "eric" with the password "databend"
CREATE USER eric IDENTIFIED BY 'databend';
-- Grant the ALL privilege on all existing tables in the default database to the user eric:
GRANT ALL ON default.* TO eric;
For more information about creating new users, see CREATE USER.
c. 运行以下命令并检查查询是否成功:
CREATE TABLE t1(a int);
INSERT INTO t1 VALUES(1), (2);
SELECT * FROM t1;
启动和停止 Databend
每次启动或停止 Databend 时,只需运行文件夹 /usr/local/databend/scripts
中的脚本:
# 启动 Databend
./script/start.sh
# 停止 Databend
./script/stop.sh