可以为AWS Athena Query指定参数吗?

时间:2018-01-03 18:12:31

标签: amazon-web-services amazon-athena

我做了一些研究,但尚未发现是否可行,但有人知道您是否可以为AWS Athena Query指定参数?

例如,我希望我的查询能够过滤WHERE merchant_id = {merchant_id}。是否可以指定这个,以便我可以为我想要的每个商家使用相同的查询?如果是这样,我会在哪里传递Athena查询的输入?

2 个答案:

答案 0 :(得分:4)

我很欣赏这个线程有点旧,但这是我尝试执行此操作时发现的第一批结果之一。我不确定是否会有重大的性能问题,并且可以肯定它可以改进,但是理论如下:

使用Athena接受的WITH函数,创建几个查询来保存您的变量,将它们连接到原始查询/表中,然后在过滤器中使用它们。

WITH startdate AS (SELECT DATE('2019-12-01') AS v_startdate), enddate AS (SELECT DATE('2019-12-31') AS v_enddate)
SELECT *SQL HERE* FROM table_name
    LEFT JOIN startdate ON 1=1
    LEFT JOIN enddate ON 1=1
    WHERE table_name.start_date >= v_startdate
            AND table_name.end_date <= v_enddate

答案 1 :(得分:2)

无法使用AWS Athena设置变量。由于Athena只能在会话中运行一个查询。

如果您尝试运行多个查询,则会收到以下错误。

enter image description here

希望它有所帮助。