开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

我外部表映射的文件,文件被删掉,这张表,大数据计算MaxCompute分区值还会存在是吗?

问题1:我外部表映射的文件,文件被删掉,我这张外表创建了最近七天,每天作为一个分区,我show partitions这张表,大数据计算MaxCompute分区值还会存在是吗?问题2:这些分区值没有数据,但其实作为元数据存放了。是这个意思吗?

展开
收起
三分钟热度的鱼 2023-07-11 17:49:56 71 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    如果您在MaxCompute中创建的外部表映射的文件被删除了,表的元数据信息仍然存在,但是由于外部表的数据存储在外部文件系统中,因此表的数据已经无法访问。在这种情况下,如果您尝试查询该表的数据,将无法获取到任何数据。
    如果您在外部文件系统中还原了被删除的文件,MaxCompute会重新加载该文件,并根据文件内容更新外部表的数据。但是,如果文件被删除的时间过长,可能会导致MaxCompute自动删除了相关的分区信息。在这种情况下,您需要手动重新添加分区信息,并重新加载分区数据。

    2023-07-29 13:08:47
    赞同 展开评论 打赏
  • 问题1:当您使用外部表映射文件时,在MaxCompute中创建的分区是基于映射文件存在的。如果映射文件被删除了,但是您仍然执行show partitions命令查看分区,那么分区值会继续显示在结果中。

    这是因为MaxCompute的分区信息是存储在元数据中的,而不依赖于实际的映射文件是否存在。即使映射文件被删除,分区信息仍然保留在元数据中,并可以通过show partitions命令看到。但是,如果映射文件不存在,对应的分区下是无法访问到具体的数据的。

    问题2:是的,当您创建分区表时,每个分区都有一个对应的分区值,即使某些分区没有实际的数据。这些分区值仍然作为元数据存在,并用于管理和查询分区表。这样做的好处是,当需要添加新的分区时,您可以直接将分区值添加到元数据中,而无需实际创建或导入数据文件。

    需要注意的是,当使用show partitions命令查看分区时,它只会显示分区的元数据信息,并不会显示具体的数据行。如果您想获取具体的数据行,需要进一步执行查询操作。

    2023-07-28 21:35:40
    赞同 展开评论 打赏
  • 针对问题1的回答:创建的外部表分区是在的,但里面本身就没有数据,都是映射外部文件。针对问题2的回答:外部表只记录与外部文件的映射关系,比如在MaxCompute创建oss外部表,只记录和oss的目录映射关系,oss外部表本身在MaxCompute上没有存储数据,也就不存在删除外部表映射文件,外部表也被删除的现象。不过外部表映射的文件发生变化,比如文件被删了,那需要重新执行映射关系才可以。 此回答整理自钉群“MaxCompute开发者社区2群”

    2023-07-11 18:11:32
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 热门讨论

    热门文章

    相关电子书

    更多
    大数据AI一体化的解读 立即下载
    极氪大数据 Serverless 应用实践 立即下载
    大数据&AI实战派 第2期 立即下载