AWS Athena 中的文件系统上缺少表

2023-12-26

我在 Athena 上使用此代码创建了一个具有自动分区的表。

CREATE EXTERNAL TABLE IF NOT EXISTS matchdata.stattable (
  `matchResult` string,
  ...
) PARTITIONED BY (
  year int ,
  month int,
  day int
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
  'serialization.format' = '1'
) LOCATION 's3://******/data/year=2019/month=8/day=2/'
TBLPROPERTIES ('has_encrypted_data'='false');

我跑了MSCK REPAIR TABLE 可统计,但文件系统上缺少表,查询结果是返回零记录。 matchdata.stattable 得到相同的结果。

另一个没有分区的表,查询工作正常。但随着服务的继续和数据集的增长,我必须进行分区。

示例数据路径为 data/2019/8/2/1SxFHaUeHfesLtPs._BjDk.gz。我该如何解决这个问题?


正如您所发现的(但为有相同问题的人提供了更多背景信息)MSCK REPAIR TABLE …只理解 Hive 风格的分区,例如/data/year=2019/month=08/day=10/file.json。该命令的真正作用是扫描 S3 上与表的对应的前缀LOCATION指令并查找类似的路径组件。

这只是一个限制MSCK REPAIR TABLE …,您可以手动添加具有其他路径样式的分区,如下所示:

ALTER TABLE the_table ADD PARTITION (year = '2019', month = '08', day = '10') LOCATION 's3://some-bucket/data/2019/08/10/'

另请参阅https://docs.aws.amazon.com/athena/latest/ug/alter-table-add-partition.html https://docs.aws.amazon.com/athena/latest/ug/alter-table-add-partition.html

我什至想说你应该避免使用MSCK REPAIR TABLE …共。它很慢,并且分区越多,速度只会变得更慢。运行效率更高ALTER TABLE … ADD PARTITION …当您在 S3 上添加新数据时,因为您知道刚刚添加的内容以及它在哪里,所以不需要告诉 Athena 扫描整个前缀。直接使用 Glue API 速度更快,但不幸的是,这需要更多代码。

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

AWS Athena 中的文件系统上缺少表 的相关文章

  • 在 SELECT IN 中使用 Oracle 参数时出现问题

    我在将一串数字插入sql查询时遇到问题 SELECT FROM tablename a WHERE a flokkurid IN 3857 3858 3863 3285 ORDER BY sjodategund rodun or SELEC
  • 删除连接到另一表 SQL 的一个表中的记录

    我有两个表 一个包含 212 000 条记录 已弃用的记录 另一个包含 10 500 000 条记录 我想在 id 和 version number 字段上连接两个表 因为两个表都有这些字段 我希望从连接表中删除匹配的记录 来自连接表 即从
  • date_sub 对于 mysql 可以,对于 postgresql 可以

    此查询适用于 mySQL 不适用于 Postgresql select from where id and h gt date sub now INTERVAL 30 MINUTE 错误是 Query failed ERREUR erreu
  • MySQL“LIKE”搜索不起作用

    我通过 LOAD DATA INFILE 在 MySQL 中导入了一个 txt 数据库 一切似乎都正常 唯一的问题是 如果我使用以下查询在数据库上搜索记录 SELECT FROM hobby WHERE name LIKE Beading
  • 有没有办法阻止 SQL Express 2008 空闲?

    我使用 SQL Express 2008 作为 Web 应用程序的后端 问题是 Web 应用程序是在工作时间使用的 因此有时在午餐或休息时间 如果 20 分钟内没有用户登录 SQL Express 将进入空闲状态模式并释放其缓存 我知道这一
  • Linq To SQL - 拥有和分组依据

    我下面这个查询工作正常 不过我想使用 Linq 来实现它 select u ID u NAME from Task t join BuildingUser bu ON bu ID BUILDING t ID BUILDING join Us
  • 需要按天分割日期时间范围

    我有一个需要根据日期时间拆分的表 输入表 ID Start End A 2019 03 04 23 18 04 2019 03 04 23 21 25 A 2019 03 04 23 45 05 2019 03 05 00 15 14 所需
  • SQL 中基于下一条记录和上一条记录的复杂排序

    这是一个后续问题根据 SQL 中的下一条记录和上一条记录进行排序 https stackoverflow com questions 30477803 sorting based on next and previous records i
  • Postgresql 一张表的多个计数

    我想从表中的两列中获得这些列中值的统一计数 例如 两列是 表 报告 type place one home two school three work four cafe five friends six mall one work one
  • SQL Server 2008R2 和创建 XML 文档

    论坛上的第一篇文章 因为我真的被这个问题困住了 以下查询正确地将有效的 XML 文档分配给 xTempXML 变量 类型为 xml 注 文档的长度 转换为varchar max 711 select xTempXML select Pres
  • T-SQL:用最新的非空值替换 NULL 的最佳方法?

    假设我有这张表 id value 1 5 2 4 3 1 4 NULL 5 NULL 6 14 7 NULL 8 0 9 3 10 NULL 我想编写一个查询来替换任何NULL值与表中最后一个不为空的值在那一栏里 我想要这个结果 id va
  • 根据日期顺序排名

    我的数据如下 Heading Date A 2009 02 01 B 2009 02 03 c 2009 02 05 d 2009 02 06 e 2009 02 08 我需要如下排名 Heading Date Rank A 2009 02
  • Reporting Services 在哪里存储其日志文件

    最相关的谷歌结果似乎表明 为了访问日志 我们必须将您自己的日志表部署到数据库并制作报告服务写入它 http technet microsoft com en us library ms157403 aspx 简而言之 Reporting S
  • 如何搜索例程的内容/(SP-触发函数)

    我需要在数据库内所有例程的例程主体 存储过程 函数 触发器 中搜索文本 我该怎么做 Thanks SELECT OBJECT NAME object id FROM sys sql modules WHERE definition LIKE
  • 获取带有计数的不同记录

    我有一张桌子personid and msg列 personid msg 1 msg1 2 msg2 2 msg3 3 msg4 1 msg2 我想得到总计msg对于每个personid 我正在尝试这个查询 select distinct
  • 如何在 DB2 中创建返回序列值的函数?

    如何在 DB2 中创建一个从序列中获取值并返回该值的函数 应该可以在 select 或 insert 语句中使用该函数 例如 select my func from xxx insert into xxx values my func 基本
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST

随机推荐

  • 如何在c#中找到驱动器的空闲百分比

    如何在c 中找到驱动器的百分比 例如 如果 c 为 100 GB 并且已用空间为 25 GB 则可用百分比应为 75 Use the DriveInfo class http msdn microsoft com en us library
  • Facebook Webforms 应用程序获取 app_data 查询字符串

    如何从 Facebook Webforms 应用程序获取 app data 查询字符串 我希望能够在查询字符串中发送一些信息 以便我可以在我的应用程序上显示不同的主屏幕 该应用程序位于页面选项卡中 例子 如何从 app data 获取 Pa
  • 显示图像并转换为灰度 - OpenCV for Android、Java API

    我正在 Eclipse 中编写一个 Android 应用程序 它使用OpenCV4Android http code opencv org projects opencv wiki OpenCV4AndroidAPI 我怎样才能显示一个Ma
  • 从 C++ 本机插件更新 Vector3 数组

    Marshal Copy 方法仅支持少数数组类型 现在我只知道如何复制IntPtr 从 C 代码指向浮点数组 float IntPtr pvertices GetVerticesFromCPP float vertices new floa
  • 使用 linq 删除代码时出现错误

    我遇到有关使用组合框删除数据的问题 该错误提示我不知道如何解决 任何人都可以帮助我吗 private void btnDel Click object sender EventArgs e using testEntities Setupc
  • ByVal 与 ByRef VBA

    我尝试过 JaredPar 回答的问题ByRef 与 ByVal 说明 https stackoverflow com questions 4383167 byref vs byval clarification ByVal在 VB NET
  • ant 构建文件设置 javac 位置

    我正在编辑一个旧项目的构建文件 当我向使用 Java 1 6 的项目添加一些 jar 文件时 它不会构建 它说 javac javac invalid target release 1 6 很明显 我需要告诉 ant 构建文件使用 java
  • 在 C++0x 中专门化 lambda 模板

    我编写了一个特征类 它可以让我提取有关 C 0x 中函数或函数对象的参数和类型的信息 使用 gcc 4 5 0 进行测试 一般情况处理函数对象 template
  • linux下可以分配大容量的虚拟内存吗?

    对于某些目的来说 分配大量的虚拟空间并仅在访问的页面中进行分页会很有效 分配大量内存是瞬时的 并且不会实际抓取页面 char p new char 1024 1024 1024 256 好吧 上面指出的是错误的 因为它是一个 32 位数字
  • Python 评估错误

    x 5 print eval x 1 builtins None 出现错误 TypeError NoneType object is not subscriptable 为什么我会出现上述错误 另外 如何为 eval 函数指定几个内置方法
  • Ruby、Mac、Geektool 问题,文件访问权限?

    我有一个内置的 Ruby 脚本TextMate http en wikipedia org wiki TextMate并可以在TextMate中成功运行 我还可以直接从终端成功运行此脚本 该脚本中有这样一段代码 Get the XML fi
  • Struts 2.0从服务器下载文件

    我已经创建了下载方法来从服务器端下载文件到客户端 但是出现了此错误 文件已成功下载到客户端 但我有此错误 所以我无法正确返回到上一页 这是我的错误 SEVERE Servlet service for servlet default thr
  • 如何传递表值参数

    我试图将表值参数传递给存储过程 但我不断收到异常 见下文 SqlCommand c new SqlCommand getPermittedUsers myConn CommandType CommandType StoredProcedur
  • 之后如何使导入的目标成为GLOBAL?

    来自FindBoost cmakeCMake 3 8的模块 foreach COMPONENT Boost FIND COMPONENTS if Boost IMPORTED TARGETS AND NOT TARGET Boost COM
  • Ocaml utop 库路径,核心模块

    我正在尝试使用Core模块输入utop 由 Jane Street 发起并使用安装opam 问题是这样的 utop open Core Std Error Unbound module Core utop似乎没有通往Core module
  • 为什么谷歌搜索返回的结果不包含我搜索的字符串? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我认为谷歌搜索不再运作良好 我不断收到不包含我要求的搜索字符串的网页 例如 我刚刚在谷歌主搜索窗口中输入 check if a vecto
  • 文本插入光标(插入符号)出现在移动浏览器中其他元素上方

    当将焦点放在文本上时input在移动浏览器中 在 iOS Safari 和 Chrome 上测试 文本插入符号出现在任何文本的顶部div放在上面 这是一个快速 简单的示例 http jsfiddle net XQf8N http jsfid
  • 在 mysql 中使用 SUM 进行多个连接

    我一直在寻找解决方案 有很多类似的问题 但没有一个有任何正确的答案可以帮助我解决问题 首先 我的问题 问题 我想对多重连接查询中的某些列进行求和和计数 多重连接是不可能的吗 我必须筑巢吗SELECT查询 下面是我的数据库的 SQL 转储以及
  • 如何将元素添加到 Hibernate 中的延迟加载集合而不导致集合加载?

    罐头上写着什么 我想在 Hibernate 中修改集合而不强制加载集合 因为它的数据量很大 约 100 000 条记录 单调递增 现在 我通过调用向此列表添加一个元素getEvents add newEvent 这当然会导致events被填
  • AWS Athena 中的文件系统上缺少表

    我在 Athena 上使用此代码创建了一个具有自动分区的表 CREATE EXTERNAL TABLE IF NOT EXISTS matchdata stattable matchResult string PARTITIONED BY