Bon*_*ond 4 amazon-s3 azure amazon-web-services powerbi u-sql
由于我是 Power BI 和 Redshift 的新手,需要一些指导..
我的原始 JSON 数据以 .gz 文件的形式存储在 Amazon S3 存储桶中(每个 .gz 文件都有多行 JSON 数据)我想将 Power BI 连接到 Amazon s3 存储桶。到目前为止,根据我的研究,我得到了三种方法:
问题:是否可以解压缩 .gz 文件(在 S3 存储桶或 Power BI 内部),从 S3 提取 JSON 数据并连接到 Power BI
问题 1:Redshift 是否允许从 S3 存储桶加载 .gzzipped JSON 数据?如果是,是直接可能的还是我必须为其编写任何代码?
问题2:我有S3帐户,是否需要单独购买Redshift帐户/空间?费用是多少?
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 - 包)。
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
Run Code Online (Sandbox Code Playgroud)
数据框将作为新查询导入(在本示例中名为“df”)
显然 pandas 库也可以获取压缩文件(例如 .gz)。请参阅以下主题:如何使用带有 gzip 压缩选项的 pandas read_csv 读取 tar.gz 文件?
| 归档时间: |
|
| 查看次数: |
15964 次 |
| 最近记录: |