ODC现已开源:与开发者共创企业级的数据库协同开发工具

news2025/1/20 14:56:27

OceanBase 开发者中心(OceanBase Developer Center,以下简称 ODC)是一款开源的数据库开发和数据库管理协同工具,从首个版本上线距今已经发展了三年有余,ODC 逐步由一款专为 OceanBase 打造的开发者工具演进成为支持多数据源的企业级的数据库协同开发工具,目前产品能力已覆盖 SQL 开发、变更风险管控、数据安全合规、数据生命周期管理等多个方向。

8 月 18 日,ODC 正式开源,开源协议采用 Apache License 2.0,欢迎大家加入ODC 开源社区。

图片

在企业级的数据库协同开发中,安全和效率常常成为团队的协作难题。ODC的目标是解决这种安全与效率之间的矛盾。过去的一年中,我们投入了大量精力来构建协同管控能力,引入了研发与运维融合的理念,以及基于项目维度的协同管控方式,同时提供了数据脱敏、数据生命周期管理等一系列的安全合规和效率提升能力。接下来,将围绕刚刚发布 4.2.0 版本,简要介绍几个重要的方向。

图片

▋ 跨终端协作:随时随地高效 SQL 协同开发

在企业级的应用场景中,SQL 协同开发和数据管理往往涉及到使用不同操作系统(Linux、Windows、Mac)的开发人员和数据库管理员。然而,这样的多样性也常常带来了协同合作的挑战,因为不同操作系统之间的差异可能会阻碍高效的团队合作。面对这一痛点,用户需要一种能够无缝跨平台的解决方案,以确保各种操作系统的用户都能够无障碍地参与到协同开发和数据管理中。

正是在这个背景下,ODC 通过现代 Web 架构为用户提供了跨终端的 SQL 开发体验,使得无论您使用的是 Linux、Windows 还是 Mac 操作系统,都能轻松参与到协同开发中。同时提供超过 25 项开发功能的强大支持,从 SQL 执行、对象管理、数据查看与编辑,甚至到 PL 调试、数据库运维、数据生成等企业级的特性,让协同变得更加高效而无缝。SQL 开发能力是 ODC 一直在建设的能力,目前该能力已经覆盖了 SQL 执行、PL 生命周期、对象管理、执行分析、数据导入导出、数据生成、数据库运维七个方向。

图片

此外,最新的 ODC 4.2.0 版本全面升级了 SQL 开发模块的产品形态,同时提供了以下新能力,包括:

  • 支持在 SQL 窗口内切换数据库,让用户可以方便地复用 SQL 窗口内容;

  • 优化了 PL 调试的参数输入,支持各种入参的 PL 进行调试;

  • 加强了数据库导出能力,支持导入兼容 pl/sql developer 的导出内容;

  • 丰富了执行分析能力,支持4.0及以上版本的 OceanBase 查看 SQL 层面的全链路诊断。

▋ 企业级风险控制:守护 SQL 开发过程的每一次变更

当一个企业的开发团队在 10 人以内的时候,或许可以通过信任和实时沟通来控制数据库的变更风险。但是当团队规模扩大时,团队内各个成员的工作职责将会细分。比如业务可能会有多条分支,每条分支都有对应的研发、研发负责人、测试、测试负责人、DBA 等等,依靠原始的沟通方式将很难控制变更风险。

数据库是公司的核心资产,DBA 需要对数据库的稳定负责,同时项目组内的所有参与人都应该为数据库中的数据负责。但由于各个角色的专业技能及对业务理解的差异,会导致非常容易好心办坏事,可能一不小心就改错了字段或删错了数据。

面对这种情况,DBA 可以选择通过所有涉及数据库的变更都自己来操作以控制变更风险,但是这势必会导致 DBA 的工作负载过高。为了保证这些工作能按时完成,势必要增加更多的 DBA,这无疑增加了项目的成本。同时 DBA 是一个非常有技术含量的岗位,他们应该把精力投入到更有价值的地方而不是耗费在频繁、单调的变更上。

假设有这样一个平台,当一条变更发起时,先经过了解业务的同学把控、再经过业务负责人审批、再经过数据库负责人把关、再经过安全负责人审核,到最后执行的时候,这条变更的风险是不是有效地得到了控制呢?答案是肯定的,而 ODC 就是这样一个平台。

有新建项目权限的用户登录 ODC 后可以根据业务线新建项目。项目创建成功后,项目负责人需要将项目组同学都加入到该项目中并给大家分配角色。同时项目负责人还需要将该业务线用到的数据库也都加入到项目里。到这一步一个协作单元基本就构建成功了。

项目成员发起变更时首先会经过 SQL 规范检查,检查通过后再经过审批流定义的节点审批,所有节点通过后才会真正地去执行。ODC 内置了覆盖 DDL、DML、DQL 语句的开发规范,用户可以根据业务实际情况自行调整开发规范。SQL 规范检查可以自动地拦截不符合规范的变更,减少人为介入,能极大提升变更参与人的工作效率。同时 ODC 支持根据变更发起的环境、任务类型、数据库名称、SQL 检查结果等定义审批流程。ODC 的变更管控覆盖了所有可能的场景,包括 SQL 窗口、数据变更、数据出库等,以保障变更管控的全面性。

图片

ODC 提供了全场景的风险控制能力,通过内置全面的风险控制,覆盖 SQL 开发过程的全部场景,通过访问权限、变更审核、稳定变更三个层次递进风险控制,保障生产数据库变更过程稳定、高效、可追溯。针对企业级变更管控,ODC 也提供了基于项目的协同和变更审批流程,通过 SQL 检查规则、SQL 窗口规范、风险等级识别定制符合实际业务情况的管控规则,实现数据库研发规范产品化,帮助用户降低配置成本提升协同效率。

▋ 优化数据流程:自动数据生命周期管理

随着业务长时间运行,业务库中的历史数据会越来越多。越来越多的历史数据会给业务库带来以下两个方面的负面影响:一是业务库的性能可能会因为业务表数据量太大而导致急剧下降。二是由于数据的增长对应的存储成本也会不断增加。为了解决这个问题,ODC 提供了三种解决办法。

第一种解决办法就是数据清理。如果过期的历史数据业务不再需要了,用户可以在 ODC 上发起数据清理工单,定义清理策略。任务发起成功后,ODC 会按照用户的要求定期清理表中的数据。

第二种解决办法是数据归档。如果过期的历史数据业务还是需要的,那么就需要做冷热数据分离。将表中的冷数据定期迁移到归档库中。用户需要提前准备好归档库,然后再在 ODC 上发起数据归档工单,定义归档策略。任务成功发起后,ODC 就会按用户要求进行冷热数据分离。

第三种解决办法是分区计划。这个解决办法适用于 range/range column 类型的分区表,ODC 提供了分区新建和分区清理能力。用户在 ODC 上发起分区计划工单,可以批量选择需要进行处理的表,定义分区策略。任务成功发起后,ODC 会按照用户的定义,定期地去清理和创建分区。

图片

ODC 致力于优化企业的数据流程,实现自动化的数据生命周期管理,从而提升数据处理效率和质量。在实际操作中,ODC 提供了全面的冷热数据分离策略,通过直观的界面和工具,使开发人员能够轻松地将数据按照保留时长清理或归档,仅需短短 5 分钟,便可构建起您的冷热数据分离系统。此外,ODC 还支持高效的自动化分区维护功能,能够批量清理和创建分区,有效减轻数据库管理员(DBA)的工作负担,使自动化分区表的维护过程变得更加高效,确保数据库在可用性和性能方面保持最佳状态。

不仅如此,ODC 还提供了强大的 SQL 计划任务能力,特别适用于企业场景中的数据归档、数据清理、报表生成等任务。ODC 能够让您轻松创建、管理并自动执行 SQL 计划任务,从而保障用户的周期计算任务能够顺利执行,确保企业数据处理的稳定性和准确性。通过这些能力,ODC 致力于提供一体化的数据生命周期管理方案,从而为企业的数据流程带来更高的效率和优化。

▋ 确保安全合规:可信赖的全场景敏感数据保护

近年来国家针对个人信息安全的法案越来越多,相应地操作审计和隐私数据保护也越来约重要。针对操作审计,ODC 在很早之前就提供了操作记录能力,用户在 ODC 上的操作均会录入到该模块中。

常见的隐私数据有用户的身份证号、手机号、家庭住址等等。这些隐私数据是业务正常运行的基础,无法从业务库中的剥离。为了保证用户的数据不泄漏,必须要严格限制业务库的访问。但如果真的完全限制了势必又会引发协作效率问题。如何保证业务开发效率的同时又能保证隐私数据安全呢?ODC 给出了解决方案:数据脱敏。

ODC 支持对数据库中敏感的字段进行脱敏处理。如用户的电话号码,真实数据是 1300685abcd,使用 ODC 脱敏后可以是 130****abcd。ODC 的脱敏技术应用在了两个方面:第一就是用户的实时查询,用户在 ODC 上访问的敏感数据,展示的都是脱敏后的结果。第二就是数据出库,用户从 ODC 往外导数据时,但凡涉及到敏感数据,默认导出的都是脱敏后的数据。

目前 ODC 支持单条、批量扫描添加敏感列。若业务库中仅有几列敏感数据,可以选择手动单条添加。若业务库中敏感的数据非常多,可以配置识别规则,批量扫描出敏感列,有效提升添加效率。未来 ODC 还会提供更加智能的敏感数据保护能力,比如自动发现敏感数据,敬请期待。

图片

ODC 将敏感数据的保护放在首要位置,为企业级的场景提供了可信赖的全场景敏感数据保护,确保用户的数据安全合规。通过数据隐私保护能力,安全管理员可以根据需要配置敏感数据规则和脱敏算法,确保敏感数据的绝对安全。即便是数据库管理员(DBA)和开发人员,经过配置后也无法直接接触敏感数据,从而极大地降低了数据泄露的风险。这种严格的数据隐私保护机制,使得企业的敏感信息在任何时候都能得到最大程度的保护。

全场景脱敏覆盖则是 ODC 在数据保护方面的又一亮点。ODC 的数据脱敏不仅适用于静态场景,更支持动态场景。无论您是在进行表数据查看、SQL 查询、结果集导出,还是数据导出,ODC 都能提供高效的数据保护。这意味着在数据处理的全过程中,敏感数据都能得到保护,从而使得企业数据的安全性得到了全方位的保障。通过这些能力,ODC 为企业提供了全场景的敏感数据保护,降低数据泄露风险,确保数据的安全和合规性。

▋ 流程与工具融合:0 代码将 ODC 与您的协同流程无缝连接

在协同流程与工具的融合方面,ODC 可以帮助用户通过 0 代码的方式将其与现有协同流程无缝连接,帮助企业实现更高效的协同工作。ODC 提供了多样的系统集成能力,这些系统集成功能包括单点登录(SSO,OAuth2/OIDC)、审批集成、SQL 审核集成、堡垒机集成、审计集成等。通过这些集成功能,ODC 能够涵盖企业管控集成的几乎所有场景,确保您的现有流程和策略能够无缝地与 ODC 结合,实现协同工作的高效性和一致性。

另外,ODC 还提供了灵活易用的集成配置功能,使得将 ODC 集成到您当前的数据库开发协同工作流程中变得更加简单。您可以轻松地通过 ODC 适配已有系统的API,而无需进行任何代码改动。这意味着您无需改变已有的系统架构,就能够高效地将 ODC 的优势与功能引入现有流程中,为您的协同工作注入全新的动力。通过这种灵活易用的集成配置,ODC 为企业协同工作带来了更大的便利和效率。

图片

▋ 全场景协同:从数据库开发到数据管理的全生命周期

在数据库开发和数据管理方面的关键需求,ODC 解决了许多客户在协同工作中遇到的痛点。ODC 通过全场景协同的能力,帮助用户实现从数据库开发到数据管理的全生命周期的无缝连接,为企业提供了全方位的支持和协同管理。在全生命周期方面,ODC 涵盖了企业数据库开发和数据管理的全部场景,从 SQL 开发到变更风险管控,再到数据生命周期管理和数据安全。这意味着企业无论是在开发、变更、数据保护还是数据管理方面,都能借助 ODC 实现高效、无缝的协同,确保各环节的顺畅协作。

与此同时,ODC 注重多角色协同参与。开发者、DBA、数据分析师、架构师和数据安全官,每个角色都有不同的关注点和需求。ODC 充分理解并融合了每个角色的特殊需求,使得数据库开发和数据管理过程中的协同合作更加顺畅。通过将不同角色的需求融入协同工作中,ODC 降低了企业数据库协同平台的部署和使用成本,为协同工作提供了高效和灵活的解决方案。

图片

图片

数据库开发领域涌现了很多卓越的开源项目,ODC 希望通过开源,与社区共同打造一款帮助 Dev 和 DBA 真正实现“ONE team”的企业级的数据库协同开发工具。未来我们将持续打磨现有的产品能力,并在一些新的方向上做尝试。

  • 更多的数据源:逐步引入MySQL 和 Oracle 的数据源支持,更全面地管理不同来源的数据。

  • 更强大的变更:建设稳定的变更模块,包含无锁结构变更及无锁数据变更。

  • 差异架构管理:实现数据库结构的全面比对与同步,确保库与库、表与表之间的对象结构变更一致化处理。

帮助用户解决企业级的数据库管控协同难题,我们一直在路上。如果你对这个开源项目感兴趣,可以点击文末“阅读原文”,前往 GitHub,深入了解更多细节,我们也欢迎以任何形式参与 ODC 社区。无论是贡献代码、提出问题、分享见解,或者仅仅是表达对这个开源项目的喜爱与支持,都将成为推动 ODC 项目发展的动力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/966828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第 361 场 LeetCode 周赛题解

A 统计对称整数的数目 枚举 x x x class Solution { public:int countSymmetricIntegers(int low, int high) {int res 0;for (int i low; i < high; i) {string s to_string(i);if (s.size() & 1)continue;int s1 0, s2 0;for (int k 0; k < s.size(); k)if …

快速为RPG辅助工具MTool增加更多快捷键(一键保存等)

起源&#xff1a;MTool是个好工具&#xff0c;本身固然好用&#xff0c;但是它本身的快捷键功能很少&#xff0c;虽然内置了一个录制工具&#xff0c;但是一个个的录&#xff0c;又麻烦&#xff0c;一般人也难以掌握 本文用快速方法增加更多快捷键&#xff0c;可以做到一键保存…

利用非线性解码模型从人类听觉皮层的活动中重构音乐

音乐是人类体验的核心&#xff0c;但音乐感知背后的精确神经动力学仍然未知。本研究分析了29名患者的独特颅内脑电图(iEEG)数据集&#xff0c;这些患者听了Pink Floyd的歌曲&#xff0c;并应用了先前在语音领域使用的刺激重建方法。本研究成功地从直接神经录音中重建了可识别的…

【性能优化】聊聊性能优化那些事

针对于互联网应用来说&#xff0c;性能优化其实就是一直需要做的事情&#xff0c;因为系统响应慢&#xff0c;是非常影响用户的体验&#xff0c;可能回造成用户流失。所以对于性能非常重要。最近正好接到一个性能优化的需求&#xff0c;需要对所负责的系统进行性能提升。目前接…

Python自动化小技巧22——获取中国高校排名数据

背景 【软科排名】2023年最新软科中国大学排名|中国最好大学排名 (shanghairanking.cn) 爬取这个网站所有的高校的数据&#xff0c;包括学习名称&#xff0c;层次&#xff0c;地区&#xff0c;分数等等信息&#xff1a;[办学层次,学科水平,办学资源,师资规模与结构,人才培养,…

红日靶场五(vulnstack5)渗透分析

环境搭建 win7 192.168.111.132&#xff08;仅主机&#xff09; 192.168.123.212&#xff08;桥接&#xff09; .\heart p-0p-0p-0win2008 ip: 192.168.111.131&#xff08;仅主机&#xff09; sun\admin 2020.comkali ip: 192.168.10.131&#xff08;nat&#xff09;vps&…

字节一面:说说地址栏输入 URL 敲下回车后发生了什么?

前言 最近博主在字节面试中遇到这样一个面试题&#xff0c;这个问题也是前端面试的高频问题&#xff0c;作为一名前端开发工程师&#xff0c;我们只有了解地址栏输入 URL 敲下回车后发生的事件&#xff0c;才知道性能优化如何下手&#xff0c;性能优化也是前端必备知识&#xf…

第一章_线程基础知识

先拜拜大神 Doug Lea&#xff08;道格.利&#xff09; java.util.concurrent在并发编程中使用的工具包 为什么学习并用好多线程极其重要 硬件方面 摩尔定律失效 摩尔定律&#xff1a;它是由英特尔创始人之一Gordon Moore&#xff08;戈登.摩尔&#xff09;提出来的。其内容为…

Centos 6.5 升级到Centos7指导手册

一、背景 某业务系统因建设较早&#xff0c;使用的OS比较过时&#xff0c;还是centos6.5的系统&#xff0c;因国产化需要&#xff0c;需将该系统升级到BClinux 8.6&#xff0c;但官方显示不支持centos 6.x升级到8&#xff0c;需先将centos6.5升级到centos7的最新版&#xff0c…

Python之作业(一)

Python之作业&#xff08;一&#xff09; 作业 打印九九乘法表 用户登录验证 用户依次输入用户名和密码&#xff0c;然后提交验证用户不存在、密码错误&#xff0c;都显示用户名或密码错误提示错误3次&#xff0c;则退出程序验证成功则显示登录信息 九九乘法表 代码分析 先…

【100天精通Python】Day52:Python 数据分析_Numpy入门基础与数组操作

目录 1 NumPy 基础概述 1.1 NumPy的主要特点和功能 1.2 NumPy 安装和导入 2 Numpy 数组 2.1 创建NumPy数组 2.2 数组的形状和维度 2.3 数组的数据类型 2.4 访问和修改数组元素 3 数组操作 3.1 数组运算 3.2 数学函数 3.3 统计函数 4 数组形状操作 4.1 重塑数组形…

Sentinel 流量控制框架

1. Sentinel 是什么&#xff1f; Sentinel是由阿里中间件团队开源的&#xff0c;面向分布式服务架构的轻量级高可用流量控制组件。 2. 主要优势和特性 轻量级&#xff0c;核心库无多余依赖&#xff0c;性能损耗小。 方便接入&#xff0c;开源生态广泛。 丰富的流量控制场景。 …

【C#】泛型

【C#】泛型 泛型是什么 泛型是将类型作为参数传递给类、结构、接口和方法&#xff0c;这些参数相当于类型占位符。当我们定义类或方法时使用占位符代替变量类型&#xff0c;真正使用时再具体指定数据类型&#xff0c;以此来达到代码重用目的。 泛型特点 提高代码重用性一定…

ThreadLocal源码剖析(简单理解)

Thread部分源码 public class Thread implements Runnable {ThreadLocal.ThreadLocalMap threadLocals null; }ThreadLocal源码,其中ThreadLocal有一个静态内部类ThreadLocalMap,这个Map不是类似二叉树类型的,只是一个普通数组,其中具体使用什么算法其实我也不太理解. 然后对…

【LeetCode】剑指 Offer <二刷>(5)

目录 题目&#xff1a;剑指 Offer 10- II. 青蛙跳台阶问题 - 力扣&#xff08;LeetCode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 11. 旋转数组的最小数字 - 力…

MIPI D-PHY的初始化(MIPI Alliance Xilinx)

DPHY的基本介绍及使用已有很多文章&#xff0c;基本是基于《MIPI Alliance Specification for D-PHY 》的内容&#xff0c;学习时也以此为准&#xff0c;可参考CSDN上的文章。着重讲述MIPI D-PHY的初始化部分 1 D-PHY的功能及使用 下面的文章讲的不错&#xff0c;既有理论&…

内存管理方式

内存管理 一、C/C内存分布1、内存空间的介绍2、示例题目3、示例题目图解 二、C语言动态内存管理方式1、代码2、介绍 三、C内存管理方式1、概念2、代码3、代码所代表的意义 四、new和delete操作自定义类型1、代码2、运行结果3、特点 五、operator new与operator delete函数1、概…

【算法系列篇】模拟算法

文章目录 前言1.替换所有问号1.1 题目要求1.2 做题思路1.3 Java代码实现 2. 提莫攻击2.1 题目要求2.2 做题思路2.3 Java代码实现 3. N 字形变换3.1 题目要求3.2 做题思路3.3 Java代码实现 4. 外观数列4.1 题目要求4.2 做题思路4.3 Java代码实现 5. 数青蛙5.1 题目要求5.2 做题思…

CXL.mem S2M Message 释义

&#x1f525;点击查看精选 CXL 系列文章&#x1f525; &#x1f525;点击进入【芯片设计验证】社区&#xff0c;查看更多精彩内容&#x1f525; &#x1f4e2; 声明&#xff1a; &#x1f96d; 作者主页&#xff1a;【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#xff0c…

【操作系统】一文快速入门,很适合JAVA后端看

作者简介&#xff1a; 目录 1.概述 2.CPU管理 3.内存管理 4.IO管理 1.概述 操作系统可以看作一个计算机的管理系统&#xff0c;对计算机的硬件资源提供了一套完整的管理解决方案。计算机的硬件组成有五大模块&#xff1a;运算器、控制器、存储器、输入设备、输出设备。操作…