在大数据计算MaxCompute中,mc表在迁移导出的时候这个问题可以解决嘛?[阿里云]

mc表在迁移导出的时候 事务表导出之后然后在导入的时候会变成非事务表,这个有办法解决么?建的时候时事务表,导出是用dw的迁移导出做的

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 现在可以离线导入事务表。你可以先把事务表创建好 再导入。事务表不能转成普通表。。此回答整理自钉钉群:MaxCompute开发者社区1群

  2. 如果您发现导出后的事务表在导入时变成了非事务表,可以通过以下方式解决:

    1. 在导出时指定事务表属性:在导出 MaxCompute 表时,请务必确保 with tableproperty ("transactional=true") 参数被添加到 SQL 中。
    2. 在导入时指定事务表属性:在导入 MaxCompute 表时,请务必在 create table 命令中加入事务属性。例如:create table my_table (...) like mc_table stored as orc tblproperties ("transactional"="true");
    3. 检查权限:确认导入导出用户的权限允许他们访问和编辑事务表。您可以尝试将数据从相同的用户名下迁移到另一个用户名下,以检查是否存在问题。
  3. 如果你希望在导出后再导入时保持事务表的状态,目前推荐的做法是在导出前为表创建快照,然后使用该快照来进行导入。这样可以保证表的原始属性(如是否为事务表)得以保留。

    以下是具体的步骤:

    1. 使用CREATE TABLE命令为待导出的表创建一个新表,其中包含LIKE关键字以复制源表的所有属性。
    2. 使用MSCK REPAIR TABLE命令修复新的表,以便它可以识别Hive元存储中的分区。
    3. 导出新创建的表。
    4. 将导出的数据导入目标环境。
    5. 如果目标环境中已有一个具有相同名称的表,则可以在导入后删除它,然后将新导入的数据重命名回原始表名。