开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

DataWorks set tblproperties("transactional"="true?

DataWorks set tblproperties("transactional"="true")?

展开
收起
真的很搞笑 2023-07-16 12:24:13 648 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    可以使用以下方式设置Hive表的属性信息:

    在数据开发模块中,选择需要修改的Hive表,进入表详情页面。

    在表详情页面中,选择“表属性”选项卡,可以查看和修改表的属性信息。

    在“表属性”选项卡中,可以添加和修改表的属性信息,例如,设置表的事务属性为“transactional=true”。

    添加或修改属性后,点击“保存”按钮,即可保存表的属性信息。

    需要注意的是,在设置Hive表的属性信息时,需要确保属性名称和属性值正确,并符合Hive的规范和要求。此外,还需要根据表的实际情况和需求,选择合适的属性配置和优化方案。

    对于设置表的事务属性为“transactional=true”的情况,需要满足以下条件:

    Hive版本必须为0.13及以上版本。

    表引擎必须为“org.apache.hadoop.hive.ql.io.orc.OrcInputFormat”或“org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat”。

    表必须使用“ORC”格式存储,并且启用了“ACID”特性。

    2023-07-21 20:06:34
    赞同 展开评论 打赏
  • 在DataWorks中,可以使用set tblproperties("transactional"="true")语句来设置表属性为事务性(Transactional)。

    该语句用于将指定的表设置为支持事务的表,即开启表级别的事务管理。当表被设置为事务性时,可以执行事务操作,如INSERT、UPDATE和DELETE等,并确保这些操作符合ACID(原子性、一致性、隔离性和持久性)特性。

    在DataWorks中,你可以在ODPS SQL文档编辑器中输入该语句,并替换其中的tblproperties和相应的表名。例如:

    set tblproperties("transactional"="true") on your_table_name;
    

    请注意以下事项:

    • 在执行此命令之前,请确保你有足够的权限来修改表属性。
    • 这个命令只能应用于MaxCompute(原名ODPS)表,而不适用于其他类型的表或存储系统。
    • 设置表属性为事务性后,相关的事务操作会带来一些额外的开销,因此需谨慎评估对性能的影响,并确保你的应用程序能正确处理事务操作和异常情况。
    2023-07-18 13:33:18
    赞同 展开评论 打赏
  • MaxCompute常见问题:
    Q1:报错提示FAILED:ODPS-0130071:xxxxxxxxx .set tblproperties("transactional"="true") in order to use this feature
    A1:MaxCompute非transactional表不支持UPDATE/DELETE表数据或修改表结构。
    0)transactional表UPDATE/DELETE官方文档
    建transactional表官方文档
    1)当前只允许创建表时设置transactional属性,已有表不允许通过alter table修改transactional属性。
    2)cluster table、外部表不能设置成transactional表。
    3)现有内部表和外部表不支持转成transactional表,transactional表也不支持转成普通表。,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-07-16 12:30:39
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 相关电子书

    更多
    低代码开发师(初级)实战教程 立即下载
    冬季实战营第三期:MySQL数据库进阶实战 立即下载
    阿里巴巴DevOps 最佳实践手册 立即下载