You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Athena查询将S3数据加载至Power BI?及已通过Glue数据目录ODBC加载时的前置Athena查询改造方法

嘿,这两个问题我都在实际项目里处理过,给你分享下具体的实操方法:

问题1:如何通过Athena查询将S3中的数据加载到Power BI?

核心是借助Athena的ODBC驱动建立连接,直接将Athena查询结果作为Power BI的数据源,具体步骤如下:

  • 第一步:安装Athena ODBC驱动
    下载并安装匹配你系统(32/64位)的Athena ODBC驱动,安装过程中可提前配置AWS访问密钥(Access Key ID和Secret Access Key),也可以后续在DSN配置里补充。

  • 第二步:配置ODBC数据源(DSN)
    打开系统的ODBC数据源管理器,新增一个Athena类型的DSN:

    • 给数据源起个好记的名字,比如Athena-PowerBI-Connection
    • 选择和你的S3桶、Glue数据目录一致的AWS区域
    • 选择身份验证方式(个人开发常用访问密钥,生产环境推荐IAM角色)
    • 设置默认数据库(对应Glue数据目录里的目标数据库)
    • 点击测试连接,确认能成功访问Athena
  • 第三步:在Power BI中连接并加载数据
    打开Power BI Desktop,依次点击「获取数据」→「更多」→搜索「ODBC」,选中你刚配置的DSN:

    • 进入导航器后,你可以直接选Glue里的表,也可以点击「高级选项」输入自定义Athena查询,比如:
      SELECT user_id, order_amount, order_date 
      FROM your_db.s3_raw_orders 
      WHERE order_date BETWEEN '2024-01-01' AND '2024-06-30'
      
    • 最后点击「加载」或「转换数据」,就能把Athena查询的结果导入Power BI了
问题2:先通过Athena查询转换数据再加载到Power BI是否可行?当然可行!

你已经用了Glue数据目录+ODBC的基础架构,只要微调数据源的选择逻辑就能实现,这里有两种常用的实操方法:

方法一:在Athena中创建转换视图,用视图作为Power BI数据源(推荐)

这种方式的优势是转换逻辑可统一维护、复用,不用在Power BI里反复改查询:

  • 登录Athena控制台,打开查询编辑器,编写你的转换SQL并创建视图,比如:
    CREATE OR REPLACE VIEW your_db.cleaned_orders AS
    SELECT 
        user_id,
        CAST(order_amount AS DECIMAL(10,2)) AS order_amount_clean,
        DATE_FORMAT(order_date, '%Y-%m') AS order_month,
        CASE WHEN order_status = 'PAID' THEN '已支付' ELSE '未支付' END AS status_cn
    FROM your_db.s3_raw_orders
    WHERE order_status != 'CANCELED'
    
  • 执行查询创建视图后,回到Power BI的ODBC导航器,就能看到这个新视图,直接选择加载即可。后续要调整转换逻辑,只要修改Athena里的视图,Power BI这边刷新数据就能同步更新。

方法二:在Power BI连接时直接编写自定义转换查询

如果是临时的一次性转换需求,不想创建视图,可以在Power BI连接ODBC的步骤中,点击「高级选项」,直接输入你的转换SQL,Power BI会直接调用Athena执行这个查询,把返回的结果作为数据源加载进来。

两种方法都能满足你“先转换再加载”的需求,长期来看更推荐用视图的方式,便于团队协作和后续维护。

内容的提问来源于stack exchange,提问作者Christian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 06:22:44