Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。
官方地址:https://databend.rs/
Databend 特性
表现
- 对象存储上超快的数据分析。
- 利用数据级并行性和指令级并行性技术最佳性能。
- 无需构建索引,无需手动调整,也无需计算分区或分片数据。
数据处理
- SELECT支持、INSERT、DELETE、UPDATE、 、REPLACE、COPY等原子操作MERGE。
- 提供时间旅行和多目录(Apache Hive / Apache Iceberg)等高级功能。
- 支持摄取各种格式的半结构化数据,例如 CSV、JSON 和 Parquet。
- 支持ARRAY、MAP 和 JSON等半结构化数据类型。
- 支持类似Git的MVCC存储,方便历史数据的查询、克隆和恢复。
对象存储
- 支持各种对象存储平台。单击此处查看支持平台的完整列表。
- 允许即时弹性,使用户能够根据其应用程序需求进行扩展或缩小。
Databend 架构
Databend 的架构由:元服务层、查询层 和 存储层。
元服务层
Databend通过其元服务层有效支持多个租户,这在系统中起着至关重要的作用:
- 元数据管理:处理数据库、表、集群、事务等的元数据。
- 安全性:管理安全环境的用户身份验证和授权。
查询层
Databend 中的查询层处理查询计算,由多个集群组成,每个集群包含多个节点。每个节点是查询层的核心单元,由以下部分组成:
- Planner:使用以下元素制定 SQL 语句的执行计划关系代数,包含投影、过滤器和限制等运算符。
- 优化器:基于规则的优化器应用预定义的规则,例如“谓词下推”和“修剪未使用的列”,以实现最佳查询执行。
- 处理器:按照 Pull&Push 方法,根据规划器指令构建查询执行管道。处理器互连,形成可以跨节点分布的管道以增强性能。
存储层
Databend 采用 Parquet(一种开源列式格式),并引入了自己的表格式来提高查询性能。主要特点包括:
- 二级索引:加速跨各个分析维度的数据定位和访问。
- 复杂数据类型索引:旨在加速半结构化数据等复杂类型的数据处理和分析。
- 分段:Databend有效地将数据组织成分段,提高数据管理和检索效率。
- 集群:在段内采用用户定义的集群键来简化数据扫描。
Databend 社区向数据专业人士、学生以及任何对云数据仓库充满热情的人开放。欢迎点击下面的链接来参与其中:
Slack: https://link.databend.rs/join-slack
GitHub: https://github.com/datafuselabs/databend
Twitter: https://twitter.com/DatabendLabs
LinkedIn: https://www.linkedin.com/company/datafuselabs
YouTube: @DatabendLabs"target="_blank"">https://www.youtube.com/@DatabendLabs
服务部署
Docker and Local Deployments:https://databend.rs/doc/deploy/deploying-local
Docker Hub: https://hub.docker.com/r/datafuselabs/databend
docker run \
-p 8000:8000 \
-p 3307:3307 \
-v meta_storage_dir:/var/lib/databend/meta \
-v query_storage_dir:/var/lib/databend/query \
-v log_dir:/var/log/databend \
-e QUERY_DEFAULT_USER=databend \
-e QUERY_DEFAULT_PASSWORD=databend \
-e QUERY_STORAGE_TYPE=s3 \
-e AWS_S3_ENDPOINT=http://172.17.0.2:9000 \
-e AWS_S3_BUCKET=databend \
-e AWS_ACCESS_KEY_ID=ROOTUSER \
-e AWS_SECRET_ACCESS_KEY=CHANGEME123 \
datafuselabs/databend
Deploying a Cluster on Kubernetes: https://databend.rs/doc/deploy/cluster/deploying-databend-on-kubernetes
databend.yaml
---
kind: ConfigMap
apiVersion: v1
metadata:
name: databend-cm
annotations:
kubesphere.io/creator: admin
data:
databend.query.config.file: ''
databend.query.storage.type: 's3'
databend.default.user: 'databend'
databend.default.password: 'databend'
databend.aws.s3.endpoint: ''
databend.aws.s3.bucket: 'databend'
databend.aws.access-key: ''
databend.aws.access-secret: ''
databend.minio.enabled: false
---
apiVersion: v1
kind: Service
metadata:
name: databend-svc
annotations:
kubesphere.io/alias-name: Databend 数仓服务
kubesphere.io/description: Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓
spec:
ports:
- name: tcp-8000
port: 8000
protocol: TCP
targetPort: 8000
- name: tcp-9000
port: 9000
protocol: TCP
targetPort: 9000
- name: tcp-3307
port: 3307
protocol: TCP
targetPort: 3307
- name: tcp-8124
port: 8124
protocol: TCP
targetPort: 8124
selector:
app: databend
type: NodePort
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: databend-deploy
annotations:
kubesphere.io/alias-name: Databend 数仓服务
kubesphere.io/description: Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓
spec:
replicas: 1
selector:
matchLabels:
app: databend
template:
metadata:
labels:
app: databend
spec:
containers:
- name: databend
image: 'datafuselabs/databend'
ports:
- name: http-8000
containerPort: 8000
protocol: TCP
- name: http-9000
containerPort: 9000
protocol: TCP
- name: http-3307
containerPort: 3307
protocol: TCP
- name: http-8124
containerPort: 8124
protocol: TCP
env:
- name: QUERY_CONFIG_FILE
valueFrom:
configMapKeyRef:
name: databend-cm
key: databend.query.config.file
- name: QUERY_STORAGE_TYPE
valueFrom:
configMapKeyRef:
name: databend-cm
key: databend.query.storage.type
- name: QUERY_DEFAULT_USER
valueFrom:
configMapKeyRef:
name: databend-cm
key: databend.default.user
- name: QUERY_DEFAULT_PASSWORD
valueFrom:
configMapKeyRef:
name: databend-cm
key: databend.default.password
- name: AWS_S3_ENDPOINT
valueFrom:
configMapKeyRef:
name: databend-cm
key: databend.aws.s3.endpoint
- name: AWS_S3_BUCKET
valueFrom:
configMapKeyRef:
name: databend-cm
key: databend.aws.s3.bucket
- name: AWS_ACCESS_KEY_ID
valueFrom:
configMapKeyRef:
name: databend-cm
key: databend.aws.access-key
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
configMapKeyRef:
name: databend-cm
key: databend.aws.access-secret
- name: MINIO_ENABLED
valueFrom:
configMapKeyRef:
name: databend-cm
key: databend.minio.enabled
imagePullPolicy: Always
最后编辑:Jeebiz 更新时间:2024-07-10 22:56