繁体   English   中英

将 Power BI 连接到 S3 存储桶

[英]Connecting Power BI to S3 Bucket

需要一些指导,因为我是 Power BI 和 Redshift 的新手。

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

  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 压缩文件,并在提取过程中自动解压缩它们。 如果我的 gzipped 文件包含 JSON 数据行,此过程是否有效?

如果有任何其他方法,请告诉我,以及您对这篇文章的宝贵建议。

提前致谢。

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

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

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

用于 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 文件?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM