问题标签 [amazon-athena]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 使用正则表达式(SQL -Athena)逐段获取字符串路径
我想在 Amazon Athena 中将字符串转换为 SQL 中的行
由于 Athena 不支持某些功能,我被迫执行许多正则表达式功能
输入(也可以有不同的长度)可能如下所示:
我想把它变成一张看起来像这样的桌子
我已经使用以下代码从字符串中过滤出第一段文本:
但我不知道如何使用正则表达式在下一个空格之后获取文本部分
有谁知道我如何编写下一个正则表达式函数?
java - 将字符串解析为 Java 对象
我需要将String
这种格式的 s 转换成一个Array
对象。
有什么简单的方法可以转换它而无需完全手动完成?
更新:我从自定义 SQL 数据库 (Amazon Athena) 中提取这些值。而且自定义JDBC
不支持getArray()
,所以看起来我需要手动解析包含Array
of的列Structs
。不幸的是,这是数据库的限制,我无法控制它。getString()
这是我在列上调用时 SQL 数据库返回的格式。
SQL 表定义
Java 对象
MessageObj
RecipientObj
解析数据。
amazon-web-services - 在 Athena 中通过 JDBC 创建的表未出现在控制台中
当我使用带有 Amazon Athena 的 JDBC 驱动程序创建表时,它不会出现在 Athena 控制台中,但在show tables in mydatabase
通过 jdbc 执行命令时会出现(反之亦然)。任何想法为什么我会发生这种情况?
hadoop - AWS 上的 Hive:将 S3 JSON 转换为列保留分区
我在 S3 中有包含多行 JSON 的文件(由换行符分隔)。我想将这些文件转换为列格式供AWS Athena使用
我正在按照转换为列格式的指南来执行此操作,但是当转换为 ORC 时,S3 中的分区约定会丢失。
在此示例中,您如何保留dt
已转换为 parquet s3 文件夹结构中的分区?当我运行示例时,它只是输出s3://myBucket/pq/000000_0
而不是s3://myBucket/pq/dt=2009-04-14-04-05/000000_0
这是设置接口以将 JSON 带入 Hive 表的 HQL:
这是转换为 Parquet 的 HQL
amazon-web-services - 如何从 Amazon Athena 查询镶木地板数据?
Athena 使用 S3 表中的字段创建一个临时表。我已经使用 JSON 数据完成了这项工作。您能帮我了解如何使用镶木地板数据创建表格吗?
我试过以下:
- 将示例 JSON 数据转换为 parquet 数据。
- 将镶木地板数据上传到 S3。
- 使用 JSON 数据列创建临时表。
通过这样做,我可以执行查询,但结果为空。
这种方法是正确的,还是在镶木地板数据上可以采用其他方法?
示例 json 数据:
amazon-athena - 为什么 AWS athena 将我的表创建为字符串而不是嵌套对象数组
我得到的不是嵌套表,而是一个很长的标题,其中包含 sql 命令但没有错误。为什么它工作但实际上没有正确输入 json 数据?
JSON数据格式:
python - PyAthenaJDBC (AWS athena) 中的 HIVE 参数
我正在使用名为 PyAthenaJDBC 的 python 模块,以便使用提供的 JDBC 驱动程序查询 Athena。这是链接:https ://pypi.python.org/pypi/PyAthenaJDBC/
连接已成功建立,查询也正常工作(显示数据库、显示表、选择...)但是,每当我尝试使用 Hive 参数(例如“ROW FORMAT SERDE..”)定义自定义表时,它就不再工作了,这是我的代码:
错误:第 1:8 行:输入“CREATE EXTERNAL”没有可行的替代方案(服务:AmazonAthena;状态代码:400;错误代码:InvalidRequestException;请求 ID:0cca6f3e-fe9e-11e6-be4f-a3b28f284a77)
PS:同样的查询在控制台管理中工作得很好!有什么帮助吗?
amazon-web-services - 是否有使用 Athena JDBC 驱动程序获取查询 ID 和状态的方法?
有没有办法获得Athena query ID
我提交的 Athena JDBC 驱动程序的查询?对查询状态的任何 API 调用(使用其查询 ID?)有什么方法可以通过 API 调用获取查询历史记录?
hive - AWS Athena:“msck repair table”会产生费用吗?
我在 S3 中有如下所示的 ORC 数据:
每小时我都会运行一个 EMR 作业,将 S3 中的原始 JSON 转换为 ORC,并使用 Athena 摄取的路径分区约定(上图)将其写出。EMR 作业完成后,我运行msck repair table
以便 Athena 可以获取新分区。
我有3个相关问题:
- 在这种情况下运行是否会
msck repair table
在 AWS 中花费我的钱? - AWS Docs 说
msck repair table
可以超时。有没有办法我可以在数据管道中迈出一步来继续运行这个命令,直到它成功完成? - 我更愿意手动将分区添加到 Athena(因为我知道我正在处理的年、月、日、小时)。但是我不知道,
clientId
因为可能有 1-X 个,而且我不知道在运行 EMR 时存在哪些。是否有解决此问题的最佳实践方法(使用 Hive 或其他方法)?我可以进行 s3 api 调用来获取列表s3://bucket/org/
并编写代码来迭代列表并手动添加。我希望有一个更简单的方法...
注意:当我说“手动添加分区”时,我的意思是做这样的事情:
django - java.sql.SQLExceptionPyRaisable 在第二次尝试使用 Django 连接到 Athena 时
我正在使用名为 PyAthenaJDBC 的 python 模块,以便使用提供的 JDBC 驱动程序查询 Athena。这是链接:https ://pypi.python.org/pypi/PyAthenaJDBC/
我一直面临一些持久的问题。每当我连续两次使用 Athena 连接时,我都会收到此 java 错误。
事实上,我能够连接到 Athena、显示数据库、创建新表甚至查询内容。我正在使用 Django 构建应用程序并运行其服务器以使用 Athena 但是,我必须重新运行服务器才能使 Athena 连接再次工作,
这是我建立的课程的一瞥
用法示例:
工作得很好!但是刷新页面会导致此错误:
请注意,我使用的是本地 .jar 文件:我认为这可以解决问题,但我错了即使我删除了 JDBC 驱动程序的路径并让模块从 s3 下载它,错误仍然存在:
文件“/home/tewfikghariani/.virtualenvs/venv/lib/python3.4/site-packages/pyathenajdbc/connection.py”,第 69 行,init ATHENA_CONNECTION_STRING.format(region=self.region_name, schema=schema_name), props ) jpype._jexception.java.sql.SQLExceptionPyRaisable: java.sql.SQLException: 没有找到适合 jdbc:awsathena://athena.us-west-2.amazonaws.com:443/hive/default/ 的驱动程序
此外,当我自己运行模块时,它工作得很好。当我在渲染模板之前在视图中设置多个连接时,效果也很好。
我猜这个问题与 django 视图有关,一旦其中一个视图执行与 athena 的连接,下一个连接就不可能了,除非我重新启动服务器,否则会引发错误
有什么帮助吗?如果缺少其他详细信息,我会立即提供。