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

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.rhkb.cn/news/118325.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

香橙派Orangepi Zero2 刷机步骤

目录 1.香橙派Orangepi Zero2简介 2.刷机 2.1物料准备 2.2 格式化SD卡 2.3 烧录镜像到SD卡 2.4 安装SD卡到Orangepi 2.5 连接Pi电源 2.6 MobaXterm 串口登陆Orangepi 2.6.1 连线示意图 2.6.2 MobaXterm 使用 2.6.3修改登陆密码 2.6.4 网络配置 2.7 SSH登陆开发版…

14 mysql bit/json/enum/set 的数据存储

前言 这里主要是 由于之前的一个 datetime 存储的时间 导致的问题的衍生出来的探究 探究的主要内容为 int 类类型的存储, 浮点类类型的存储, char 类类型的存储, blob 类类型的存储, enum/json/set/bit 类类型的存储 本文主要 的相关内容是 bit/json/enum/set 类类型的相关…

中心差分法-学习笔记《结构动力学-陈政清》

激励分段解析法仅仅对外载荷进行了离散,但对运动方程还是严格满足的,体系的运动在时间轴上依然是满足运动微分方程。然而,一般的时域逐步积分法进一步放松要求,不仅仅对外荷载进行离散化处理,也对体系的运动进行离散化…

c++入门一

参考:https://www.learncpp.com/cpp-tutorial/ When you finish, you will not only know how to program in C, you will know how NOT to program in C, which is arguably as important. Tired or unhappy programmers make mistakes, and debugging code tends…

Swift 如何从图片数据(Data)检测原图片类型?

功能需求 如果我们之前把图片对应的数据(Data)保持在内存或数据库中,那么怎么从 Data 对象检测出原来图片的类型呢? 如上图所示:我们将 11 张不同类型的图片转换为 Data 数据,然后从 Data 对象正确检测出了原图片类型。 目前,我们的代码可以检测出 jpeg(jpg), tiff,…

逻辑回归Logistic

回归 概念 假设现在有一些数据点,我们用一条直线对这些点进行拟合(这条直线称为最佳拟合直线),这个拟合的过程就叫做回归。进而可以得到对这些点的拟合直线方程。 最后结果用sigmoid函数输出 因此,为了实现 Logisti…

K8S自动化运维容器化(Docker)集群程序

K8S自动化运维容器化集群程序 一、K8S概述1.什么是K8S2.为什么要用K8S3.作用及功能 二、K8S的特性1.弹性伸缩2.自我修复3.服务发现和负载均衡4.自动发布和回滚5.集中化配置管理和秘钥管理6.存储编排7.任务批量处理运行 三、K8S的集群架构1.架构2.模式3.工作4.流程图 四、K8S的核…

如何解决vue3.0+typescript项目提示找不到模块“./App.vue

一、解决方案如下&#xff1a;需在项目目录下加上下面这段代码即可&#xff01;如果没有vite-env.d.ts目录需要继续往下看 declare module *.vue {import type { DefineComponent } from vueconst vueComponent: DefineComponent<{}, {}, any>export default vueCompon…

TBOX开发需求说明

TBOX功能需求&#xff1a; 支持4G上网功能&#xff0c;可获取外网IP&#xff0c;可和云端平台连通支持路由功能&#xff0c;支持计算平台、网关和云端平台建立网络连接支持USB转网口&#xff0c;智能座舱会通过USB连接AG35建立网络连接&#xff08;类似IVI通过USB口连接TBOX&a…

前端面试中Vue的有经典面试题二

7. Vue中给data中的对象属性添加一个新的属性时会发生什么&#xff0c;如何解决&#xff1f; 示例&#xff1a; 点击button会发现&#xff0c; obj.b 已经成功添加&#xff0c;但是视图并未刷新&#xff1a; 原因在于在Vue实例创建时&#xff0c; obj.b 并未声明&#xff0c;因…

SQL求解用户连续登录天数

数据分析面试过程中&#xff0c;一般都逃不掉对SQL的考察&#xff0c;可能是笔试的形式&#xff0c;也可能是面试过程中面试官当场提问&#xff0c;当场在纸上写出&#xff0c;或者简单说一下逻辑。 今天&#xff0c;就来分享一道面试中常常被问到的一类SQL问题&#xff1a;连…

推荐个一行代码的Python可视化神器

学过Python数据分析的朋友都知道&#xff0c;在可视化的工具中&#xff0c;有很多优秀的三方库&#xff0c;比如matplotlib&#xff0c;seaborn&#xff0c;plotly&#xff0c;Boken&#xff0c;pyecharts等等。这些可视化库都有自己的特点&#xff0c;在实际应用中也广为大家使…

在springboot中配置mybatis(mybatis-plus)mapper.xml扫描路径的问题

我曾经遇到过类似问题&#xff1a; mybatis-plus的mapper.xml在src/main/java路径下如何配置pom.xml和application.yml_idea 把mapper文件放到java下如何配置_梓沂的博客-CSDN博客 当时只是找到解决问题的办法&#xff0c;但对mybatis配置来龙去脉并未深入了解&#xff0c;所…

操作系统备考学习 day1 (1.1.1-1.3.1)

操作系统备考学习 day1 计算机系统概述操作系统的基本概念操作系统的概念、功能和目标操作系统的四个特征并发共享虚拟异步 操作系统的发展和分类操作系统的运行环境操作系统的运行机制 年初做了一个c的webserver 的项目&#xff0c;在学习过程中已经解除部分操作系统的知识&am…

解决Debian系统通过cifs挂载smb后,中文目录乱码问题

解决Debian系统通过cifs挂载smb后&#xff0c;中文目录乱码问题 //$smb_server/share /mnt/nas_share cifs credentials/root/.smbcredentials,iocharsetutf8 0 0默认通过以上命令挂载smb&#xff0c;但是在查看文件目录时&#xff0c;中文乱码 解决问题方式&#xff1a; de…

C语言——指针基本语法

概述 内存地址 在计算机内存中&#xff0c;每个存储单元都有一个唯一的地址(内存编号)。 通俗理解&#xff0c;内存就是房间&#xff0c;地址就是门牌号 指针和指针变量 指针&#xff08;Pointer&#xff09;是一种特殊的变量类型&#xff0c;它用于存储内存地址。 指针的实…

iOS脱壳之frida-ios-dump

frida-ios-dump介绍 该工具基于frida提供的强大功能通过注入js实现内存dump然后通过python自动拷贝到电脑生成ipa文件&#xff0c;适合现iOS11版本之后的越狱手机使用。 下载 https://github.com/AloneMonkey/frida-ios-dump环境安装 电脑环境安装 win和Mac 环境一样都是…

美创科技一体化智能化公共数据平台数据安全建设实践

公共数据是当今政府数字化转型的关键要素和未来价值释放的核心锚点&#xff0c;也是“网络强国”、“数字中国”的战略性资源。 作为数字化改革先行省份&#xff0c;近年来&#xff0c;浙江省以一体化智能化公共数据平台作为数字化改革的支撑总平台&#xff0c;实现了全省公共数…

基于Vue前端框架构建BI应用程序

一、什么是Vue&#xff1f; Vue&#xff08;Vue.js&#xff09;是一个轻量级、高性能、可组件化的MVVM库。简而言之&#xff0c;是一个构建数据驱动的web界面的渐进式框架。它采用MVVM思想&#xff0c;通过数据双向绑定实现数据的动态渲染&#xff0c;同时也支持组件化的开发方…

gitee上传本地项目bug

&#x1f92e;这个破bug不知道浪费了多长时间&#xff0c;以前没有记录&#xff0c;每次都忘记&#xff0c;这次记下来 问题描述 gitee创建仓库&#xff0c;然后根据它提示的如下命令&#xff0c;但一直报错 原因分析&#xff1a; 把命令复制出来&#xff0c;粘贴到Sublime …