欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > ducklake+minio 测试

ducklake+minio 测试

2025/6/13 19:55:10 来源:https://blog.csdn.net/liufeng1980423/article/details/148576614  浏览:    关键词:ducklake+minio 测试

ducklake是duckdb1.3.0提供的新功能,功能类似于apache iceberg以及snowflake产品。

具体介绍可以查看

ducklake 简介

以duckdb的ducklake extension形式提供。

主要包括两部分,元数据和数据(catalog和data)

catalog以关系型数据库提供,现在支持存储在duckdb,sqlite,postgres,mysql中

数据以parquet格式存储,支持放在本地目录,网络目录以及oss(blob storage)中(S3)

具体帮助可以查看官方文档

ducklake帮助

下面测试是将catalog放到postgresql中,数据放到minio中

1. 下载minio,启动后在控制台中创建名字为testbucket的bucket. 并在该桶中创建data_folder的目录,用来存储数据。具体操作不在此详细说明,可以查看minio的帮助文档

2. 在控制台中创建 Access Key

3. duckdb中安装postgres,httpfs,ducklake并加载

4. 在postgresql中创建一个名字为duckdb_catalog的数据库

4. duckdb中创建s3的secret用来链接minio

D CREATE SECRET (TYPE s3,KEY_ID '2bdJFd2NxgUT7sHk',SECRET 'bexDKzaOA3Y6Yh17LA6FD9ADwTMzANtm',ENDPOINT '192.168.100.138:9000');
┌─────────┐
│ Success │
│ boolean │
├─────────┤
│ true    │
└─────────┘
D set s3_url_style='path';

5. duckdb中创建ducklake

attach 'ducklake:postgres:dbname=ducklake_catalog port=15432 user=postgres' as my_ducklake  (data_path 's3://testbucket/data_folder');

6. 创建成功后,在postgresql 的ducklake_catalog库中创建了很多ducklake相关的catalog表,这些表就是用来管理后台数据存储中的数据,每个表具体什么作用可以查看

catalog表介绍

7. duckdb中也可以查看到该库的内容

以及现有的所有数据库

my_ducklake就是用户库,__ducklake_metadata_my_ducklake库用来存放catalog表

8. 测试

没有建表的时候,minio中是没有parquet文件的。

通过外部的文件创建一张表,如下

删除一部分记录

原始数据文件并不变,但是会增加一个文件,记录了那些记录被删除了,所以ducklake属于append only类型的数据库

再删除一部分记录

又增加了一个删除文件,但是新增的删除文件中的记录包括了上一次删除的记录,这主要是为了支持删除snapshot的功能,在此不在介绍。

更新一部分记录

新增加了一个包含更新内容的parquet和一个删除文件,也就是update操作转换成append only就是先 删除数据(增加删除文件),再增加数据(数据文件)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词