小编Raj*_*eev的帖子

如何在AWS Athena外部表中将输入文件名作为列

我在AWS Athena中创建了外部表来查询S3数据,但是,位置路径有1000多个文件.所以我需要将记录的相应文件名显示为表中的列.

select file_name , col1 from table where file_name = "test20170516"
Run Code Online (Sandbox Code Playgroud)

简而言之,我需要知道AWS Athena Presto中的INPUT__FILE__NAME(hive)等效或任何其他方法来实现相同的目标.

sql amazon-s3 amazon-web-services presto amazon-athena

27
推荐指数
2
解决办法
9996
查看次数

AWS CLI Athena,Python - 以编程方式传递查询

我正在尝试通过 AWS CLI 命令运行一组 Athena SQL 语句,我需要了解以下内容

SQL 查询集位于一个文件中,我需要通过 python 脚本按顺序迭代以下 CLI 命令中的每个查询的 --query-string

我可以使用 FOR 循环从文件中获取 sql 命令,但我不知道如何在 AWS CLI 命令中对其进行参数化。

AWS CLI 命令

aws athena start-query-execution \
   --query-string **"select count(*) from tablename;"** \
   --query-execution-context Database=test45 \
   --result-configuration OutputLocation=s3://test/ \
   --output text
Run Code Online (Sandbox Code Playgroud)

Python代码

import boto3

client = boto3.client('athena')
fd = open('Athenacli.sql', 'r')
sqlFile = fd.read()
fd.close()

sqlCommands = sqlFile.split(';')
for command in sqlCommands:
    print command
    response = client.start_query_execution(
        QueryString=command,
        QueryExecutionContext={
            'Database': 'Test45'
        },
        ResultConfiguration={
            'OutputLocation': 's3://test/'
        }
    )

print …
Run Code Online (Sandbox Code Playgroud)

sql python-2.7 aws-cli boto3 amazon-athena

6
推荐指数
1
解决办法
1万
查看次数

AWS Athena - 如何参数化 SQL 查询

我想在 Select & Create table 语句中为查询提供运行时值。参数化 Athena SQL 查询的方法有哪些?我尝试使用Presto 中的PREPARE&EXECUTE语句,但它在 Athena 控制台中不起作用。我们是否需要任何像 Python 这样的外部脚本来调用它?

PREPARE my_select1
FROM SELECT * from NATION;

EXECUTE my_select1 USING 1;
Run Code Online (Sandbox Code Playgroud)

amazon-web-services presto amazon-athena

4
推荐指数
1
解决办法
4219
查看次数

AWS Redshift Spectrum - 如何获取外部表中的 s3 文件名

我在 AWS 频谱中创建了外部表来查询 s3 数据,但是我无法识别记录所属的文件名(我在一个存储桶下有数千个文件)

在 AWS Athena 中,我们有一个伪列“$PATH”,它将显示 s3 文件名在使用频谱时是否有任何类似的方法可用?

amazon-s3 amazon-web-services amazon-redshift amazon-athena amazon-redshift-spectrum

4
推荐指数
1
解决办法
3391
查看次数