暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

alitrack 2022-08-27
1219

前两天分享了 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_engine
import pandas as pd

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
  }
}

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),暗号:入群

也欢迎投稿!



文章转载自alitrack,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论