前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在CDP运营数据库(COD)上部署事务支持

如何在CDP运营数据库(COD)上部署事务支持

作者头像
大数据杂货铺
发布2023-03-08 20:46:18
4160
发布2023-03-08 20:46:18
举报
文章被收录于专栏:大数据杂货铺大数据杂货铺

什么是 Cloudera 运营数据库 (COD)

Cloudera Operational Database 使开发人员能够快速构建面向未来的应用程序,这些应用程序的架构旨在处理数据演变。它通过自动缩放等功能帮助开发人员自动化和简化数据库管理,并与Cloudera Data Platform (CDP) 完全集成。有关更多信息和 COD入门,请参阅我们的文章 Cloudera Data Platform Operational Database (COD) 入门。

背景

此博客是“ Cloudera Operational Database 中的事务支持”博客系列中的第二篇。

  • 在第一篇博文中,我们介绍了 COD 中事务支持的概述和用法。请参阅Cloudera 操作数据库 (COD) 中的事务支持。
  • 在第二部分中,我们将通过一个分步示例演示如何在您的 COD 环境中使用事务。

如何使用 COD 事务

要使用事务,您需要在创建表时逐表添加 TRANSACTIONAL 标志“TRANSACTIONAL=true”:

代码语言:javascript
复制
create table my_table (k BIGINT PRIMARY KEY, v VARCHAR) TRANSACTIONAL=true;

您还可以将现有表更改为事务性表,但要小心,因为您无法将事务性表切换回非事务性表。

代码语言:javascript
复制
ALTER TABLE my_other_table SET TRANSACTIONAL=true;

端到端示例

为了演示 COD 中事务的使用,让我们使用发生在仓库终端的“订单输入”示例。仓库有多个待售商品,客户不断下单。

以下是本示例中使用的表结构和示例数据。

代码示例的 Git 链接:

https://github.com/cloudera/cod-examples/blob/main/phoenix-read-write/src/main/java/com/cloudera/cod/examples/sql/TransactionalClient.java

ITEM:

创建语法:

样本数据:

Customer:

创建语法:

样本数据:

Order:

创建语法:

样本数据:

OrderLineItem

创建语法:

样本数据:

现在让我们构建一个简单的 Java 应用程序来演示事务的用法以及 COD 如何处理冲突,以便当并发客户端尝试使用不同的事务同时更新相同的数据集时,数据库中存在一致的数据视图。

首先,使用上述结构创建表并填充Item和客户数据。

创建表:

填充数据:

这是创建包含订单表条目的订单的简单代码,创建订单行条目并将条目数量更新为单个事务。

现在让我们创建多个客户端来模拟来自不同终端的订单创建。

考虑到来自不同终端的客户端连接,以下代码创建多个连接。

您可以使用上面的 createOrder 方法在第一个终端中创建订单并直接提交更改。

事务完成后,数据存在item表中。

Item:

Order:

Order line item

COD 事务如何检测数据冲突

以下示例代码片段演示了 COD 如何使用第一次提交检测冲突,并抛出异常指示使用第二次提交检测到冲突。

仓库现在包含三个图书条目,第二个终端的操作员将这两个条目添加到订单中,但没有完成订单。与此同时,第三终端的另一位操作员在订单中添加了一个图书条目并完成了它。现在可用的图书条目数量是一个。因此,当第二个终端的操作员试图完成订单时,它失败了,因为订单中的一本书已经被第三个终端的操作员拿走了。

COD在提交第二个终端事务时抛出异常提示冲突,因为第二个和第三个终端躺在同一个条目上,而第三个终端提交时数量与第二个终端不一致。

总结:

在这篇博文中,我们通过一个涵盖端到端流程的示例演示了如何使用事务。有关 COD 事务支持的更多详细信息,请参阅COD 事务支持博客。

原文作者:Raj Rathee, Biplab Chakraborty, Rajeshbabu Chintaguntla, and Thiriguna Rao

原文链接:https://blog.cloudera.com/how-to-deploy-transaction-support-on-cloudera-operational-database-cod/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据杂货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 Cloudera 运营数据库 (COD)
  • 背景
  • 如何使用 COD 事务
  • 端到端示例
  • Customer:
    • 创建语法:
      • 样本数据:
      • Order:
        • 创建语法:
          • 样本数据:
          • OrderLineItem
            • 创建语法:
              • 样本数据:
              • 填充数据:
              • COD 事务如何检测数据冲突
              • 总结:
              相关产品与服务
              数据库
              云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档