为 athena 选择特定文件

2024-01-25

在 Athena 中创建表时,我无法使用特定文件创建表。有没有办法从给定的存储桶中选择以“year_2019”开头的所有文件?例如 s3://bucketname/prefix/year_2019*.csv


文档对此说得很清楚,这是不允许的。

From: https://docs.aws.amazon.com/athena/latest/ug/tables-location-format.html https://docs.aws.amazon.com/athena/latest/ug/tables-location-format.html

Athena 读取您在中指定的 Amazon S3 位置中的所有文件 CREATE TABLE 语句,并且不能忽略其中包含的任何文件 字首。创建表时,仅在 Amazon S3 路径中包含 您希望 Athena 读取的文件。使用 AWS Lambda 函数扫描文件 在源位置中,删除所有空文件,然后移动不需要的文件 文件到另一个位置。

我想知道社区是否找到了一些解决方法:)


不幸的是,Athena 用于 S3 的文件系统抽象不支持这一点。它要求表位置看起来像目录,Athena 在列出文件时会在位置末尾添加斜杠。

有一种方法可以创建仅包含选定文件的表,但据我所知它不支持通配符,仅支持显式文件列表。

你要做的就是创建一个表

STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat'

然后而不是指向LOCATION将表指向实际文件,将其指向带有单个的前缀symlink.txt文件(或将每个分区指向带有单个前缀的前缀)symlink.txt)。在里面symlink.txt在文件中,您添加要包含在表中的文件的 S3 URI,每行一个。

我所知道的有关此功能的唯一文档是用于与 Athena 集成的 S3 库存文档 https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html.

您还可以在此 Stackoverflow 响应中找到完整示例:https://stackoverflow.com/a/55069330/1109 https://stackoverflow.com/a/55069330/1109

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 athena 选择特定文件 的相关文章

随机推荐

  • Windows DLL实际上是如何共享的?

    通过检查 Windows 计算机中的几个 DLL 例如 KERNEL32 DLL 我注意到它们的任何部分 甚至只读数据部分 都没有设置 IMAGE SCN MEM SHARED 标志 DLL 是从 dll 文件映射的 因此只有当您读取文件的
  • C++ 变量作用域

    与我的预期相比 我的 C 代码输出不同 我希望了解它是如何执行的 include
  • 如何使用角度2中的管道过滤列表

    你能告诉我如何使用 Angular 2 中的管道来过滤列表吗 https stackblitz com edit angular qvtqeu file src 2Fapp 2Fapp component html https stackb
  • 如何找到2个以上用户的匹配时间间隔

    从给定的不同用户的时间间隔中找到最合适的时间 Rows 5 fid userid FromDateTime ToDateTime flag 62 1 2012 07 18 01 48 20 2012 07 18 02 55 20 1 63
  • SQL 查询不会仅返回一个字段的完整结果

    我在使用 VBA 执行 SQL 查询并将结果复制到 Excel 工作表中时遇到问题 当 sub 执行时 它仅复制 256 倍数的行 因此第 256 512 768 等行是唯一填充到 Excel 中的行 我从数据库复制任何其他字段都没有问题
  • Java 中的延续

    Java 中有没有好的延续性实现 如果是这样 开销是多少 JVM 的设计并没有考虑到这些事情 对吗 那么这种做法是不是有悖常理呢 请参阅 Apache Javaflowhttp commons apache org sandbox java
  • 我可以使用自动映射器将多个对象映射到目标对象吗

    UserAccount objUserAccount null AutoMapper Mapper CreateMap
  • 如何设置 PHP_AUTH_USER

    PHP AUTH USER 为空 并且系统使用Windows登录凭据 我该如何改变它 我想使用用户输入的用户名和密码 See 使用 PHP 进行 HTTP 身份验证 http php net manual en features http
  • 如果实体中没有定义标识符,Hibernate 如何在内部跟踪对象?

    根据 Hibernate 参考文档 标识符属性是严格可选的 你可以把它们放下 并让 Hibernate 在内部跟踪对象标识符 如果实体中没有定义标识符 Hibernate 如何在内部跟踪对象 进一步扩展问题 如果没有标识符 我们如何 loa
  • eval() 可以优化吗?

    eval 更改局部变量的能力给 JavaScript 优化器带来了很大的问题 我读了 javascript权威指南 这本书 eval 可以优化吗 我不明白 这并不是说eval优化 而是那些寻求优化的 JavaScript 引擎被阻止这样做e
  • 对向量的每个元素中的单词重新排序

    我想更改向量中每个元素的词序 具体来说 我想制作另一个向量 其中第一个单词现在是许多长度不同的元素的最后一个单词 Data metadata1 lt c reference1 an organism reference2 another o
  • 如何填写数据安全? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在为我的应用填写 Google Play 数据安全表单 我的应用程序使用 AdMob 并且没有其他收集用户信息的库 我该怎么填写呢 对
  • 双击 .jar 文件时“找不到主类”

    首先 我意识到这个问题应该很简单 而且很多人似乎都经历过 但是 看来我的问题可能是slightly与现有职位不同 我正在使用 NetBeans 编译 Java 应用程序 构建完成后 输出将正确进入 dist 文件夹 jar 文件就在那里 如
  • onSaveInstanceState中保存接口(Listener)

    保存实例状态 对于像 Integer Long String 等数据都可以 我只是将其放入包中 并在再次调用 onCreateView 时将其取回 但我的片段也有像下面这样的听众 public class SomeFragment exte
  • EPPlus 和 ClosedXML 库在使用 OpenXML 方面有何区别? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我试图在 ClosedXML EPPlus 和可能的 SpreadsheetLight 之间进行选择 我可能会出于哪些原因考虑选择其中之一
  • 如何调试大型 git 提交?

    好的 情况如下 几年前 我们对代码库中的多个文件进行了多项更改 并一次性全部提交 这些更改中的某个地方隐藏着一个错误 使用 git bisect 我很快就能够追踪到罪魁祸首的提交 但该提交中的更改量让我有点不那么热情了 使用 git bis
  • rshiny - 有条件的条件面板:检查列表中的项目

    我有 2 个列表 每个列表包含多个 idp id以另一个变量为条件d d1 lt as list unique df p id df d 1 d2 lt as list unique df p id df d 2 我想添加一个conditi
  • ASP.Net 5 project.json 脚本命令的完整列表? (视觉工作室 2015)

    我已经看过了ASP NET 5团队 wiki 条目项目 json 来识别哪个脚本命令可用 目前列出以下内容 scripts prebuild echo before building postbuild echo after buildin
  • 顶层例外

    我在用着topshelf http topshelf project com 当我尝试使用 i 选项安装为服务时 我收到此异常 无法将 Magnum CommandLineParser SwitchElement 类型的对象转换为 Magn
  • 为 athena 选择特定文件

    在 Athena 中创建表时 我无法使用特定文件创建表 有没有办法从给定的存储桶中选择以 year 2019 开头的所有文件 例如 s3 bucketname prefix year 2019 csv 文档对此说得很清楚 这是不允许的 Fr