将 Power BI 连接到 S3 存储桶

2023-12-07

由于我是 Power BI 和 Redshift 的新手,需要一些指导..

我的原始 JSON 数据以 .gz 文件的形式存储在 Amazon S3 存储桶中(每个 .gz 文件有多行 JSON 数据) 我想将 Power BI 连接到 Amazon s3 Bucket。到目前为止,根据我的研究,我得到了三种方法:

  1. Amazon S3 是一项 Web 服务,支持 REST API。我们可以尝试使用Web数据源来获取数据

问题:是否可以解压缩 .gz 文件(在 S3 存储桶或内部 Power BI 内),从 S3 中提取 JSON 数据并连接到 Power BI

  1. 将数据从 Amazon S3 导入 Amazon Redshift。使用 SQL 工作台在 Redshift 内进行所有数据操作。使用 Amazon Redshift 连接器获取 Power BI 中的数据

问题1:Redshift 是否允许从 S3 存储桶加载 .gzzipped JSON 数据?如果是,是直接可能的还是我必须为其编写任何代码?

问题2:我有 S3 帐户,是否需要单独购买 Redshift 帐户/空间?费用是多少?

  1. 通过 Azure 数据工厂将数据从 AWS S3 存储桶移动到 Azure Data Lake Store,使用 Azure Data Lake Analytics (U-SQL) 转换数据,然后将数据输出到 PowerBI

U-SQL 可识别文件扩展名为 .gz 的 GZip 压缩文件,并在提取过程中自动解压缩它们。如果我的 gzip 压缩文件包含 JSON 数据行,此过程是否有效?

如果还有其他方法,请告诉我,也请您对这篇文章提出宝贵的建议。

提前致谢。


关于你的第一个问题:我最近刚刚遇到了类似的问题(但提取了 csv),我想注册我的解决方案。

Power BI 仍然没有直接插件来下载 S3 存储桶,但您可以使用 python 脚本来完成此操作。获取数据 --> Python 脚本

PS.:确保 boto3 和 pandas 库安装在您在 Power BI 选项中通知的 Python 主目录的同一文件夹(或子文件夹)中, 或者在 Anaconda 库文件夹 (c:\users\USERNAME\anaconda3\lib\site-packages) 中。

Python 脚本选项的 Power BI 窗口

import boto3
import pandas as pd

bucket_name= 'your_bucket'
folder_name= 'the folder inside your bucket/'
file_name = r'file_name.csv'  # or .json in your case
key=folder_name+file_name

s3 = boto3.resource(
    service_name='s3',
    region_name='your_bucket_region',  ## ex: 'us-east-2'
    aws_access_key_id=AWS_ACCESS_KEY_ID,
    aws_secret_access_key=AWS_SECRET_ACCESS_KEY
)

obj = s3.Bucket(bucket_name).Object(key).get()
df = pd.read_csv(obj['Body'])   # or pd.read_json(obj['Body']) in your case

   

数据框将作为新查询导入(在本示例中名为“df”)

显然 pandas 库也可以获取压缩文件(例如 .gz)。请参阅以下主题:如何使用带有 gzip 压缩选项的 pandas read_csv 读取 tar.gz 文件?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Power BI 连接到 S3 存储桶 的相关文章

  • 如何获取Azure帐户租户ID?

    我的问题是 是否可以在不使用 powershell 命令的情况下获取 azure Active Directory 租户 id 我找到了这两篇博客 在这个帮助下 我已经能够从 powershell 获取租户 ID 和订阅 ID 这是找回租客
  • 如何使用 iam-role 启动 ec2-instance?

    我可以在管理控制台中使用 iam role 启动 ec2 instance 但我不知道如何从 aws ruby sdk 中使用 iam role 启动 ec2 instance iam role test s Policy is here
  • AWS ACM 证书管理 删除正在使用的证书

    我想删除 AWS Certificate Manager 中正在使用的 AWS 证书 为此 我使用建议的 AWS CLI 和以下命令 aws iam delete server certificate server certificate
  • 使用 Ruby 获取 AWS 区域名称

    我正在为 AWS 开发 Rails 应用程序 并希望为区域名称创建下拉菜单 例如 us east 1 等 如果有人已经创建了 gem 来获取它们 我想使用它 有人知道这样的 gem 或有用的 API 吗 适用于 Ruby 的 AWS 开发工
  • 错误“未初始化常量 AWS (NameError)”

    它说 AWS 未初始化 我正在使用 aws sdk core gem 我尝试使用 aws sdk gem 代替 问题仍然存在 这是initializers aws rb 文件 AWS config access key id gt ENV
  • 使用端口 80 的 AWS Elastic Beanstalk 上的 WebSocket 问题

    我正在将一个 node js 应用程序从 Heroku 迁移到在端口 80 上使用 WebSocket 的 AWS Elastic Beanstalk WebSocket 在 AWS Elastic Beanstalk 上返回 301 错误
  • AWS EMR 引导操作为 sudo

    我需要更新 etc hosts适用于我的 EMR 集群 EMR AMI 4 3 中的所有实例 整个脚本无非就是 bin bash echo e ip1 uri1 gt gt etc hosts echo e ip2 uri2 gt gt e
  • VS 2013 中缺少“将 Application Insights Telemetry 添加到项目”选项

    我有一个现有的网络项目 我单击 将 Application Insights 遥测添加到项目 在该过程中的某个时刻它抛出了类似的错误 无法初始化powershell主机 然后我根据谷歌搜索尝试了一些东西 项目中没有ApplicationIn
  • UseOpenIdConnectAuthentication - 无法取消对消息的保护。状态错误消息

    我正在尝试将 Google 和 Azure Active Directory 权限添加为我的应用程序中的 OpenIdConnect 选项 如果我单独添加它们 它就可以正常工作 但如果我将它们都添加 我会收到以下错误消息 无法取消对消息的保
  • 在 Power BI 中显示相同值的所有行和行总数

    我试图在 Power BI 中针对 总金额 显示 某些列名称 我期待以下结果 但它却向我展示了以下结果 当前的数据类型是 固定十进制数 我尝试将其更改为 十进制数 或 整数 但它不起作用 有什么建议么 之所以只有一个重复值 是因为您没有在
  • 发布管道中的 Azure DevOps 日志记录命令

    我试图通过在任务中设置一些环境变量来自定义管道版本的输出 我找到了以下链接 然而这似乎不起作用 我所做的只是创建一个具有单个任务 bash 或 PS 的管道 并通过任务的内联版本声明链接中指定的命令 有人已经成功地使这些命令起作用了吗 我做
  • S3.getSignedUrl 接受多种内容类型

    我正在使用react s3 uploader节点包 它接受一个signingUrl用于获取用于将对象存储到 S3 中的signedUrl 目前 我已经配置了一个 lambda 函数 带有 API 网关端点 来生成此signedUrl 经过一
  • 使用 AWS CDK 为 lambda 指定自定义角色

    我意识到它很新 但我没有看到任何语言的任何示例 说明如何为使用 AWS CDK 创建的 lambda 指定角色 我正在尝试这样做 const cdk require aws cdk cdk const lambda require aws
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • AWS-PHP-SDK / SNS 直接寻址返回错误

    您好 我正在使用 Laravel 4 设置来利用 AWS SNS 向我的 iOS 设备发送推送消息 从 AWS 控制台向我的设备发布命令效果很好 然后我尝试从 PHP sns AWS get sns sns gt publish array
  • AWS Lambda。延迟调用

    我需要使用亚马逊工具构建 任务调度程序 主要问题是我需要执行一次任务 延迟很大 可能是几个小时或几周 我尝试研究如何使用 CloudWatch 和 Lambda 函数构建它 据我了解 我需要使用单独的规则来执行一次超时 但 AWS 只允许我
  • 更改表分布(Azure 数据仓库)

    在急着下班的过程中 我在一个采用循环分配的新桌子上运行了一个大型插入 我知道这不太可能 但是有没有办法将表的分布从循环更改为哈希分布 很遗憾ALTER TABLE不支持更改 Azure SQL 数据仓库中表的分布 您可以做的下一个最好的事情
  • asp.net core / kestrel中的线程管理

    我正在解决我们已迁移到 asp net core 2 0 的 asp net 应用程序的性能 可扩展性问题 我们的应用程序作为应用程序服务托管在 azure 上 并且在任何中等流量的情况下都很容易崩溃 让我困惑的一件事是如何处理多个并发请求
  • 如何以 Rails 形式将图像从 上传到具有 Rails Active Storage 的 S3?

    正如标题中所述 我正在尝试使用 Rails 的 Active Storage 从嵌套在 Rails 表单中的元素将图像上传到我的 S3 存储桶 到目前为止我已经能够使用使用 Active Storage 上传图像 这User class h
  • PHPUnit - 模拟 S3Client 无法正常工作

    库 aws aws sdk php 2 PHP 版本 PHP 5 4 24 cli 作曲家 json require php gt 5 3 1 aws aws sdk php 2 require dev phpunit phpunit 4

随机推荐