tongchenkeji 发表于:2023-11-29 15:51:090次点击 已关注取消关注 关注 私信 在大数据计算MaxCompute中,mc表在迁移导出的时候这个问题可以解决嘛?[阿里云] 暂停朗读为您朗读 mc表在迁移导出的时候 事务表导出之后然后在导入的时候会变成非事务表,这个有办法解决么?建的时候时事务表,导出是用dw的迁移导出做的 「点点赞赏,手留余香」 赞赏 还没有人赞赏,快来当第一个赞赏的人吧! 海报 阿里云# MaxCompute2748# 分布式计算2827# 大数据1264
小周sirAM 2023-11-30 3:19:19 2 如果您发现导出后的事务表在导入时变成了非事务表,可以通过以下方式解决: 在导出时指定事务表属性:在导出 MaxCompute 表时,请务必确保 with tableproperty ("transactional=true") 参数被添加到 SQL 中。 在导入时指定事务表属性:在导入 MaxCompute 表时,请务必在 create table 命令中加入事务属性。例如:create table my_table (...) like mc_table stored as orc tblproperties ("transactional"="true"); 检查权限:确认导入导出用户的权限允许他们访问和编辑事务表。您可以尝试将数据从相同的用户名下迁移到另一个用户名下,以检查是否存在问题。
Star时光AM 2023-11-30 3:19:19 3 如果你希望在导出后再导入时保持事务表的状态,目前推荐的做法是在导出前为表创建快照,然后使用该快照来进行导入。这样可以保证表的原始属性(如是否为事务表)得以保留。 以下是具体的步骤: 使用CREATE TABLE命令为待导出的表创建一个新表,其中包含LIKE关键字以复制源表的所有属性。 使用MSCK REPAIR TABLE命令修复新的表,以便它可以识别Hive元存储中的分区。 导出新创建的表。 将导出的数据导入目标环境。 如果目标环境中已有一个具有相同名称的表,则可以在导入后删除它,然后将新导入的数据重命名回原始表名。
现在可以离线导入事务表。你可以先把事务表创建好 再导入。事务表不能转成普通表。。此回答整理自钉钉群:MaxCompute开发者社区1群
如果您发现导出后的事务表在导入时变成了非事务表,可以通过以下方式解决:
with tableproperty ("transactional=true")
参数被添加到 SQL 中。create table
命令中加入事务属性。例如:create table my_table (...) like mc_table stored as orc tblproperties ("transactional"="true");
如果你希望在导出后再导入时保持事务表的状态,目前推荐的做法是在导出前为表创建快照,然后使用该快照来进行导入。这样可以保证表的原始属性(如是否为事务表)得以保留。
以下是具体的步骤:
CREATE TABLE
命令为待导出的表创建一个新表,其中包含LIKE
关键字以复制源表的所有属性。MSCK REPAIR TABLE
命令修复新的表,以便它可以识别Hive元存储中的分区。