ODC现已开源:与开发者共创企业级的数据库协同开发工具
OceanBase 开发者中心(OceanBase Developer Center,以下简称 ODC)是一款开源的数据库开发和数据库管理协同工具,从首个版本上线距今已经发展了三年有余,ODC 逐步由一款专为 OceanBase 打造的开发者工具演进成为支持多数据源的企业级的数据库协同开发工具,目前产品能力已覆盖 SQL 开发、变更风险管控、数据安全合规、数据生命周期管理等多个方向。
8 月 18 日,ODC 正式开源,开源协议采用 Apache License 2.0,欢迎大家加入ODC 开源社区(可以点击文末
“阅读原文”,进入Github 深入了解 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 项目发展的动力。
文章转载自公众号:OceanBase