Superset 访问 S3上的数据集更方便了


前两天分享了 Superset 如何通过 DuckDB 访问 S3 上的数据集, 有网友反映,每次都要同时执行一长串的参数设置以及加载插件,非常麻烦,和 duckdb-engine 作者沟通后, 从 duckdb-engine 0.6.1 开始可以把设置(包括 httpfs 插件的自动加载)放到 Engine Parameters 中了,如果你有多个 S3 数据源,可以设置多个 DuckDB 数据库连接,每个连接配置一个 S3 的设置。
有兴趣看下视频版的,可以访问 B 站:https://www.bilibili.com/video/av557441848/
本地 minio 的参数设置
{    "connect_args": {        "preload_extensions": [            "httpfs"        ],        "config": {            "s3_endpoint": "127.0.0.1:9900",            "s3_access_key_id": "minioadmin",            "s3_secret_access_key": "minioadmin",            "s3_url_style": "path",            "s3_use_ssl": false        }    }}
Minio Play 的参数设置
{    "connect_args": {        "preload_extensions": [            "httpfs"        ],        "config": {            "s3_endpoint": "play.min.io:9000",            "s3_access_key_id": "Q3AM3UQ867SPQQA43P2F",            "s3_secret_access_key": "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG",            "s3_url_style": "path",            "s3_use_ssl": true,            "s3_region":"us-east-1"        }    }}

duckdb-engine 0.6.1 版本支持 "s3_use_ssl": false, 0.6.0 版本需要 "s3_use_ssl": "false"

另附上Python代码版本的使用方法,
from sqlalchemy import create_engineimport pandas as pdconnect_args={        "preload_extensions": ["httpfs"],        "config": {          "s3_endpoint":"127.0.0.1:9900",          "s3_access_key_id":"minioadmin",          "s3_secret_access_key":"minioadmin",          "s3_url_style":"path",          "s3_use_ssl":False  }}engine = create_engine("duckdb:///"  ,connect_args=connect_args)def test_s3():    sql = "select count(*) from 's3://ontime/*.parquet'"    df = pd.read_sql(sql, engine)    print(df)test_s3()
有兴趣看下视频版的,可以访问 B 站:https://www.bilibili.com/video/av557441848/
欢迎关注公众号

有兴趣加群讨论数据挖掘和分析的朋友可以加我微信(witwall),暗号:入群

也欢迎投稿!
到顶部