MotherDuck这样分析阿里云OSS存储的数据
文章开始前推荐2个学习环境:
1、欢迎使用镜像快速体验PostgreSQL/DuckDB强大功能:《最好的PostgreSQL学习镜像》
2、欢迎使用云起实验室: 《免费体验PolarDB开源数据库》
背景
DuckDB支持读写阿里云OSS, 那么作为云服务的MotherDuck是否也支持阿里云OSS呢? 答案当然是可以.
例子
1、参考2篇文档.
《PolarDB-PG | PostgreSQL + duckdb_fdw + 阿里云OSS 实现高效低价的海量数据冷热存储分离》
《DuckDB DataLake 场景使用举例 - aliyun OSS对象存储parquet》(https://github.com/digoal/blog/blob/master/202210/20221026_01.md)
2、如果你自己没有OSS, 又想做这个实验怎么办? 使用chrome打开如下阿里云云起实验, 选择公共资源. 启动实验.
https://developer.aliyun.com/adc/scenario/exp/90b2bceaf9954d6f8780f26a1c913385
在左边的云产品资源中, 记录几个东西
AK ID: xxxx
AK Secret: xxxx
bucket名称: famrhe20240102121144
(实验环境的console界面中操作) 在左边的实验控制台里面打开chrome浏览器(点击界面右边的图标), 输入子用户密码(在实验环境的左边可以获得)后登陆到实验环境的阿里云控制台.
(实验环境的console界面中操作)在实验控制台中打开OSS控制台:
https://oss.console.aliyun.com/
找到Bucket列表, 点击 famrhe20240102121144 , 新建test目录.
3、打开 motherduck web版体验平台.
https://app.motherduck.com/
点击Add Cell创建一个会话页面, 在会话页面中点击my_db连接到MotherDuck的数据库my_db.
在会话页面中编辑
-- 设置oss ak id, ak secret, endpoint. 这个设置只能在一个会话中有效, 无法持久化, 如果需要持久化存储请使用create secret语法.
set s3_access_key_id='xxxx';
set s3_secret_access_key='xxxx';
set s3_endpoint='s3.oss-cn-shanghai.aliyuncs.com'; -- 将数据导入oss
COPY (select id, md5(random()::text) as info, now() as ts from range(0,1000000) as t(id)) TO 's3://famrhe20240102121144/test/test_duckdb1.parquet';
-- 查询存储在OSS中的数据
select count(*),avg(id) from 's3://famrhe20240102121144/test/test_duckdb2.parquet';
-- 将oss中的数据写入到matherduck服务器
create table test as select * from 's3://famrhe20240102121144/test/test_duckdb2.parquet';
Run 正常执行, 表示MotherDuck支持阿里云oss.
或者使用secret管理oss访问密钥.
CREATE SECRET (
TYPE S3,
S3_ACCESS_KEY_ID 'xxxx',
S3_SECRET_ACCESS_KEY 'xxxx',
S3_REGION 's3.oss-cn-shanghai.aliyuncs.com'
); -- DROP SECRET (TYPE S3);
参考
https://motherduck.com/docs/getting-started/e2e-tutorial/
https://motherduck.com/docs/integrations/amazon-s3/
《MotherDuck: DuckDB 的ServerLess/NoServer+Shareable data marketing版云服务》
欢迎来参加1.6号上海举办的《国产数据库共话未来趋势》-数据库实践哪家强的沙龙, 现场和大师畅聊技术与人生, 奖品拿到手软, 提前祝大家春节快乐!
欢迎关注我的github (https://github.com/digoal/blog) , 学习数据库不迷路.
近期正在写公开课材料, 未来将通过视频号推出, 欢迎关注视频号: