jjzjj

过去的90天,ODC 发生了哪些新的改变?

OceanBase数据库官方博客 2024-01-01 原文

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/


关于作者

胡智娟
OceanBase 产品经理
主要负责 OceanBase 生态工具数据研发、迁移评估方向的产品工作,在蚂蚁集团有多年数据库管理实战经验,对日常研发及运维痛点有较深感悟。希望能帮助开发者解决痛点,为大家带来好用、安全、全面的开发协作平台。

🤠 2023 年 Q1,OceanBase 开发者中心 (ODC) 陆续发布了 4.1.0、4.1.1、4.1.2 版本,从 ODC 4.0.x 到 ODC 4.1.x 有一系列新功能,也有非常多常用功能优化,概括来说包括更加适合 OceanBase 4.0/4.1 版本、提升了规模用户协同的效率、支持 SQL 定时执行和 SQL 检查以及一系列小功能和易用性提升,本文为大家详细解读 ODC 4.1.x 的重点新特性 。

面向 OceanBase 4.0/4.1 的 ODC

🏊‍♀️ 在数据源适配方面,ODC 4.1.0 开始支持连接 OceanBase 4.0,ODC 4.1.2 开始支持连接 OceanBase 4.1。

🔑 传输安全是数据安全的重要环节,数据库连接怎么能少了 SSL 支持,安排~

🛰 基于 OceanBase 4.0 开始提供的 GV$OB_PROCESSLIST视图,ODC 的提交、回滚按钮会基于事务状态同步。

一个 DBA 轻松管理千人以上数据库权限

🚢 更强大的数据库访问权限管理,轻松支持 1000+ 用户协同场景。

用户可以通过公共连接统一配置数据库连接,通过角色授权给用户避免数据库帐密分发。

🤺 通过创建自定义角色把权限管理职权授权到部门管理员。

🚃 如果用户非常多,可以通过 excel 批量导入。

更推荐通过配置 SSO 集成的方式自动创建用户,支持 OAuth2、OIDC。

🚃 如果管理的连接数量非常多,可以通过 Excel 批量导入连接配置。

🔐 新员工入职比较频繁不想每次都手工配置?配置自动授权规则帮助自动完成新加入成员的初始化授权。

结合以上功能,一个 DBA 管理千人以上数据库访问权限,小轻松 👍。

定时 SQL 执行,更易用的 cron job

觉得 DBMS_JOBS 不够好用?MySQL 模式下也想要用定时任务?⏰ 不如来试试 ODC SQL 计划吧!

⏳ 新建 SQL 计划支持快捷配置,每天、每周、每小时的任务点几下就可以配置完成。

⏱ 当然也支持 CRON 表达式,不用担心配置错误,执行周期和下次执行时间实时预览。

🗓 SQL 计划按照设定的计划周期生成数据库变更任务,每个 SQL 计划生成了哪些变更任务可以清晰查看。

📆 计划任务的每次执行,结果信息、任务日志的体验和单个数据库变更体验一模一样。

SQL 检查自动发现“烂”SQL,保障变更安全

📸 基于语法规则的 SQL 检查第一期发布,内置 近 20 个 OceanBase SQL 编写最佳实践。

SQL 检查在 SQL 窗口执行语句、创建和编辑表对象、表数据编辑 等涉及 SQL 语句执行的环节均会触发,可以在个人偏好设置自动触发或者手动触发。

也内置在数据库变更审批流程中,在预检查节点查看 SQL 检查自动识别的风险,帮助 Developer 和 DBA 评估变更风险。下图是一个数据库变更工单的示意,SQL 检查发现了一个 SELECT 使用计算匹配可能导致索引失效的风险。

📡 当前版本只有公共连接配置只读权限才会走审批流程,下个版本会有重大升级,敬请期待。

还有数十项功能和易用性提升

支持生僻字展示,常用人名生僻字可以直接展示了,对于非国标(PUA 编码)则通过显码字体展示。

国标生僻字展示效果

非国标编码生僻字展示效果,下图 PUA 编码字通过显码字体展示,而不是小方块了。

结果集状态栏提供列类型、注释等信息,如下图所示,状态栏会根据当前选中的单元格展示对应的列信息,查看列信息不再需要切换到列模式了。

🤔 这个样例里的数据是不是有些奇怪?是用 ODC 的模拟数据功能自动生成的 😌,如果你没有试过真的可以体验一下,空有表结构没有数据的时候生成测试数据简直太简单了 😎。

限于篇幅还有更多体验改进就不逐一细讲了,升级到 ODC 4.1.2 来体验吧 👀

  • 导入导出不再依赖 sys 租户帐密了;
  • 桌面版文件可以输出到指定目录;
  • 优化了大规模表列场景下的性能;
  • 结构导出支持导出为单个文件按照外键依赖关系排序;
  • 数据导出时日期类型使用 TO_DATE、TO_TIMESTAMP 函数;
  • PL 执行调试支持 objcet,collection/cursor 等复杂参数类型;
  • 去掉了连接配置里恼人的的 SQL 查询超时;
  • 更多信息参见 ReleaseNote

今年还会有哪些特性,期待您的建议

ODC 2023 Roadmap

SQL 开发方向,作为数据库图形化客户端部分的功能,ODC 主要聚焦的还是易用性和性能,Q3/Q4 会开始支持其他数据库类型,比如 MySQL、Oracle 等,这个一方面是客户的强烈需求,另一方面也因为我们发现在 TP+AP 场景单一数据库类型的支持实际上是没有办法满足团队协同需求的。

协同效率方向,3 月 17 日 ODC 发布了 4.1.2 版本,在权限管理方面增强了自定义角色能够配置的权限范围,可以配置部门级别的管理员了,然后还提供了自动授权规则、批量创建用户、批量创建连接配置,基本上解决了 1个 DBA 管理 1000 个用户的数据库访问权限的成本问题,Q2 会对管控的概念做升级并且支持第三方审批系统集成,下半年会去覆盖 TP+AP 结合的一些协同场景,包括全局对象检索、脚本协同等;

系统稳定方向,Q1 的版本我们已经提供了内置的 SQL 检查规则,Q2 SQL 检查规则会支持自定义规则,另外今年的一个重点是会提供一系列生产环境变更的功能,包括历史库管理、无锁结构变更、无锁数据变更、行级回收站、逻辑备份恢复等。

以上为目前的产品 roadmap 规划,我们期待来自用户的使用痛点以及反馈建议,通过社区改进意见不断完善我们的产品。如果您在使用上有任何的不便或者困难,欢迎通过以下途径与产研团队联系,一起共同打造面向未来的工具!

途径一:OceanBase 社区 https://ask.oceanbase.com/

途径二:OceanBase GitHub issues https://github.com/oceanbase/oceanbase/issues


欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

有关过去的90天,ODC 发生了哪些新的改变?的更多相关文章

  1. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  2. ruby - 检查日期是否在过去 7 天内 - 2

    我的日期格式如下:"%d-%m-%Y"(例如,今天的日期为07-09-2015),我想看看是不是在过去的七天内。谁能推荐一种方法? 最佳答案 你可以这样做:require"date"Date.today-7 关于ruby-检查日期是否在过去7天内,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/32438063/

  3. ruby-on-rails - 启用 Rack::Deflater 时 ETag 发生变化 - 2

    在启用Rack::Deflater来gzip我的响应主体时偶然发现了一些奇怪的东西。也许我遗漏了一些东西,但启用此功能后,响应被压缩,但是资源的ETag在每个请求上都会发生变化。这会强制应用程序每次都响应,而不是发送304。这在没有启用Rack::Deflater的情况下有效,我已经验证页面源没有改变。我正在运行一个使用thin作为Web服务器的Rails应用程序。Gemfile.lockhttps://gist.github.com/2510816有没有什么方法可以让我从Rack中间件获得更多的输出,这样我就可以看到发生了什么?提前致谢。 最佳答案

  4. ruby-on-rails - 如何在发布新的 Ruby 或 Rails 版本时收到通知? - 2

    有人知道在发布新版本的Ruby和Rails时收到电子邮件的方法吗?他们有邮件列表,RubyonRails有一个推特,但我不想听到那些随之而来的喧嚣,我只想知道什么时候发布新版本,尤其是那些有安全修复的版本。 最佳答案 从therailsblog获取提要.http://weblog.rubyonrails.org/feed/atom.xml 关于ruby-on-rails-如何在发布新的Ruby或Rails版本时收到通知?,我们在StackOverflow上找到一个类似的问题:

  5. ruby - 当 attr_accessor 在类方法中时会发生什么? - 2

    所以我想到了这个,想知道当下面的一些事情完成后会发生什么。classTestdefself.abcattr_accessor:Johnendendobject=Test.newputs"beforecallingclassmethodabc:#{object.class.instance_methods(false)}"Test.abcputs"aftercallingclassmethodabc:#{object.class.instance_methods(false)}"这里我检查的是,getter和setter方法是否以这种方式创建。如果是这样,是那些实例方法或类方法。首先我创

  6. ruby-on-rails - 您希望看到哪些 Rails 插件? - 2

    您认为可以作为插件很好地存在于您的Rails应用程序中必须实现的哪些行为?您过去曾搜索过哪些插件功能但找不到?哪些现有的Rails插件可以改进或扩展,如何改进或扩展? 最佳答案 我希望在管理界面中看到一个引擎插件,它提供了应用程序中所有模型的仪表板摘要,以及可配置的事件图表。 关于ruby-on-rails-您希望看到哪些Rails插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

  7. ruby - 改变替换的大小写 - 2

    我有以下内容:text.gsub(/(lower)(upper)/,'\1\2')我可以将\2替换为大写吗?类似于:sed-e's/\(abc\)/\U\1/'这在Ruby中可行吗? 最佳答案 查看gsub文档:str.gsub(模式){|匹配|block}→new_str在block形式中,当前匹配字符串作为参数传入,$1、$2、$`、$&、$'等变量将被适当设置。block返回的值将替换为每次调用的匹配项。"alowerupperb".gsub(/(lower)(upper)/){|s|$1+""+$2.upcase}

  8. ruby - 需要重构为新的 Ruby 1.9 哈希语法 - 2

    这个问题在这里已经有了答案:HashsyntaxinRuby[duplicate](1个回答)关闭5年前。我有一个Recipe,其中包含以下未通过lint测试的代码:service'apache'dosupports:status=>true,:restart=>true,:reload=>trueend失败并出现错误:UsethenewRuby1.9hashsyntax.supports:status=>true,:restart=>true,:reload=>true不确定新语法是什么样的...有人可以帮忙吗?

  9. ruby - 为什么我不能从 ruby​​ 中的选定键创建新的散列? - 2

    这个问题困扰了我一段时间。这不是一件困难的事情,但我不知道为什么没有简单的方法来做到这一点,我敢打赌有但我没有看到。我只想取一个散列,像这样:cars={:bob=>'Pontiac',:fred=>'Chrysler',:lisa=>'Cadillac',:mary=>'Jaguar'}然后做类似的事情cars[:bob,:lisa]得到{:bob=>'Pontiac',:lisa=>'Cadillac'}我这样做了,效果很好:classHashdefpick(*keys)Hash[select{|k,v|keys.include?(k)}]endendruby-1.8.7-p249

  10. ruby - 如何将新的 rvm 安装与现有的 ruby​​ 版本相关联? - 2

    我遇到了RVM的问题,所以我卸载并重新安装了它。事实是我实际上尝试过rbenv,但这对我来说没有用,所以我试图让rvm重新启动并运行-而不必安装重复版本的Ruby。我至少安装了1个现有版本的Ruby:ruby--versionruby1.8.7(2011-12-28patchlevel357)[universal-darwin11.0]但是当我执行rvmlist时,我得到一个空白列表:bash-3.2$rvmlistrvmrubies#Defaultrubynotset.Try'rvmaliascreatedefault'.#=>-current#=*-current&&default

随机推荐