【问题标题】:Long delay in querying Athena using Python使用 Python 查询 Athena 的长时间延迟
【发布时间】:2020-03-09 08:39:05
【问题描述】:

我想向 AWS 社区提问。

我最近转移到雅典娜,并有以下观察:

使用 pyathena(python 客户端)查询数据比直接在 athena 中查询要花费更多时间。我有一个客户数据数据库,当我在 athena 中执行查询时,获取数据所需的时间不到 60 秒,但是当我在 Pyathena 中执行相同的查询时,完成相同的工作大约需要 40 分钟。

这是我的 python 查询:

cnxn = connect(s3_staging_dir='URL Address for my Athena results',region_name='us-east-2')
        sql= ''' SELECT * from some query '''

        df= pd.read_sql(sql, cnxn)

有人能帮我理解为什么会这样吗?我做错什么了吗?

谢谢

----已编辑----

我正在 Sagemaker 中运行查询。我正在 Sagemaker 的 Jupyter 环境中执行查询。

【问题讨论】:

  • 返回了多少行?从哪里运行查询(例如 EC2 实例或 Internet 上的某处)?当您“在 Athena 中执行查询”时,您是在控制台中执行(仅显示几行)还是通过对 Athena 的 API 调用(返回所有数据)执行此操作?我正在尝试查看延迟是否是由于传输结果而不是实际使用 Athena 造成的。
  • 尝试将limit 10 添加到您的查询中
  • @JohnRotenstein 我正在 Sagemaker 中运行查询。我正在 Sagemaker 的 Jupyter 环境中执行查询。
  • 如果您暂时将查询更改为只返回几行(例如LIMIT 10),这会加快速度吗?如果是这样,那么延迟似乎与返回的数据量以及笔记本如何将其加载到内存中有关。

标签: python sql amazon-web-services amazon-redshift amazon-athena


【解决方案1】:

一旦有新数据可用,pd.read_sql 将逐个获取数据,这是非常低效的。相反,您希望先完全下载文件,然后将其上传到 Python 会话中。 pyathena 包为此实现了一种特殊类型的光标:https://pypi.org/project/PyAthena/#pandascursor

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 2011-03-26
    相关资源
    最近更新 更多