科普文:信创国产数据库兼容性一览

1. 常见国产数据库兼容性一览

让我们先从一张《数据库库兼容性一览表》开始,谈谈各家兼容性。

图片上传失败,csdn一直提示上传图片过于频繁

❖ 兼容对象

在兼容对象上,大部分产品都将Oracle、MySQL、PostgreSQL作为兼容对象,部分产品还将如DB2、SQL Server等作为兼容对象。在实现上有些产品是支持多种模式,可以在初始化时进行选择,这里用[MultiDB]进行区分。

❖ 兼容层次

兼容层次,是指产品在那个层次提供的兼容能力,这里分为多种情况。

  • 内核级:有些产品在内核层面就兼容某些数据库,这类已“开源+二开”类产品居多。因为是基于开源产品构建的,因此天然就具备对此产品的兼容性。

  • 产品级:有些产品是以“品牌”形式存在的,即不是单一产品构成;其为了兼容其他数据库,提供独立产品来满足。这主要是一些云厂商的产品采用这样的策略。

  • 数据库级:有些产品的兼容性是在数据库初始化的阶段进行指定,且一旦指定后就不能改变。

  • 租户级:有些产品是在租户层面提供指定的兼容性能力,租户一旦指定兼容性后就不能改变。

  • 功能级:有些产品是在产品自身能力上增强,支持其他数据库功能。

❖ 兼容评估

数据库兼容性包含的维度很多,为了方便用户了解数据库的兼容能力,很多产品提供了兼容评估。在实现上有些提供了工具,有些则通过文档进行说明。

❖ 数据迁移

除了对象、语法等兼容外,是否能从源端将数据很方便地迁移、同步到目标端也很重要。这里列出产品是否提供的异构数据库的迁移能力。

❖ 兼容项:<通讯协议>

协议的兼容,可以提供一种很友好的管理、使用体验,不用改变原有连接方式的情况下就可以使用新的一种数据库。特别是针对上下游生态工具而言,协议兼容有助于快速上手使用新数据库;例如常见的如 Navicat、DBeaver 等工具可以快速连接访问数据库或者如 MySQL、PostgreSQL 的命令行工具也如此。

❖ 兼容项:<数据类型>

数据库系统存储和处理数据时,不同数据库管理系统可能对数据类型的支持存在差异,这就需要考虑数据类型兼容性。数据类型兼容性主要涉及以下几个方面:

  • 数据完整性:数据类型的兼容性影响了数据的完整性。如果在数据迁移或跨数据库系统操作时,不同数据库系统对数据类型的支持不同,会导致数据类型转换或截断,从而影响数据的完整性。

  • 查询效率:数据类型的不兼容性会影响查询效率。如果不同数据库系统对数据类型的存储和索引方式不同,可能会导致查询性能下降。

  • 应用开发难度:数据类型的不兼容性会增加应用开发的难度。在跨数据库系统开发时,如果数据类型不兼容,就需要针对不同数据库系统进行特殊处理,增加了开发和维护的成本。

所以数据类型兼容性在数据库兼容性评估中具有重要的意义,需要综合考虑数据完整性、查询效率和应用开发难度等因素,以确保数据在不同数据库管理系统之间的兼容性和一致性。

❖ 兼容项:<字符集>

字符集是一种用来表示不同语言和字符的编码规范。在数据库中,字符集决定了数据如何存储和显示。不同的数据库管理系统支持不同的字符集,例如MySQL支持utf8、utf8mb4等字符集,而Oracle支持AL32UTF8、AL16UTF16等字符集。在数据库替换过程中进行数据库迁移或数据交换的时候,字符集兼容性就显得非常重要。当要将数据从一个数据库迁移到另一个数据库时,需要确保数据的字符集不会丢失或损坏,务必注意字符集的兼容性,以确保数据能够正确地存储和显示。数据库厂商应明确自己兼容的数据库类型,以及如何设置字符集,以方便用户选择和使用。

❖ 兼容项:<SQL语法>

尽管 SQL 是一种标准化的查询语言,但实际上不同的数据库实现了自己的 SQL 语法扩展和特性,导致其之间的 SQL 语法存在一定的差异。在进行数据库替换过程中,跨数据库的开发、迁移和数据交互等环节,由于不同数据库之间 SQL 语法的差异,会直接影响客户的决策和项目周期。各数据库厂商应在兼容性部分尽可能的细化 SQL 语法的兼容性程度,以便研发和运维管理人员做综合的评估

❖ 兼容项:<数据对象>

数据库对象的兼容性在数据库替换或迁移中起着至关重要的作用。当需要将一个数据库系统替换成另一个数据库系统时,数据库对象的兼容性可以影响到替换过程的顺利进行以及数据的完整性和准确性。以下是数据库对象兼容性在数据库替换中的作用:

  • 数据迁移:在进行数据库替换时,通常需要将原有数据库中的数据迁移到新的数据库系统中。如果数据库对象之间的数据类型、存储结构、索引等不兼容,可能导致数据丢失、格式不正确或无法正确转换的问题。

  • 存储过程和触发器:一些数据库对象,如存储过程和触发器,可能是特定于某个数据库系统的特性。在进行数据库替换时,需要确保新的数据库系统能够支持这些对象,并进行相应的迁移和调整。

  • 数据一致性:数据库对象的兼容性还涉及到数据的一致性和完整性。在数据库替换过程中,需要确保数据库对象的转换和迁移不会造成数据错误或丢失,以保持数据的一致性。

  • 性能影响:数据库对象的兼容性还会影响到新数据库系统的性能。如果数据库对象的设计不符合新数据库系统的最佳实践或性能优化策略,可能会造成性能下降或不稳定。

❖ 兼容项:<过程化语言>

数据库过程化语言是一种用于编写存储过程和触发器等数据库对象的编程语言。它是针对特定数据库管理系统而设计的,以支持在数据库中执行复杂逻辑和业务规则的编程需求。通过数据库过程化语言,用户可以在数据库中定义和执行一系列的操作和逻辑,实现对数据的处理和管理。在数据库替换过程中,过程化语言的重要性主要体现在数据转换、业务逻辑实现、数据一致性和完整性、性能优化以及数据迁移逻辑控制等方面。通过合理地使用过程化语言,数据库替换工作可以更有效地进行,同时保证数据的完整性和业务规则的实现。

❖ 兼容项:<内置函数>

数据库内置函数是数据库提供的一组用于处理数据和执行特定操作的函数。这些内置函数可以用于查询、操作和处理数据库中的数据,简化开发和提高查询效率。不同的数据库系统支持不同的内置函数,通常包括字符串函数、数值函数、日期函数、聚合函数等。同时数据库内置函数的使用可以简化数据处理过程,减少手动编写复杂的逻辑代码的工作量,提高开发效率和代码的可读性。在编写SQL查询语句或存储过程时,合理地使用数据库内置函数能够更高效地实现各种数据处理和操作。如果数据库替换后,原本使用的内置函数在新的数据库中不被支持或者功能有所改变,就会导致原有的数据库操作无法正常进行,甚至可能会导致数据丢失或错误。因此,在进行数据库替换时,需要仔细评估新数据库对内置函数的支持情况,确保原有的数据库操作能够在新数据库中正常运行。如果存在兼容性问题,可能需要重新设计数据库操作,或者寻找替代的内置函数来实现相同的功能。保证数据库内置函数的兼容性对于保障数据库操作的正常运行和数据的完整性至关重要。

❖ 兼容项:<系统视图>

数据库系统视图是数据库系统中的一种虚拟表,它是通过查询一张或多张基本表生成的视图。这些视图可以帮助用户简化复杂的查询操作,隐藏数据的复杂性,提供不同层次的数据访问权限,以及提供数据安全性。兼容数据库的系统视图可以有效地降低数据库替换或升级过程中的风险,保障原有数据和应用的正常运行。

❖ 兼容项:<优化器功能>

通过优化器的功能,数据库可以根据查询的复杂度和特点生成最优化的执行计划,从而提高查询性能,降低系统资源的消耗,提升数据库系统整体的性能表现。通过确保数据库优化器功能的兼容性,可以有效降低数据库替换或升级带来的风险,并保障系统的性能和效率得到长期维持和提升。

❖ 兼容项:<安全特性>

数据库安全特性是数据库系统中用于保护数据安全的一系列功能和措施。这些特性旨在防止未经授权的访问、数据泄露、数据损坏和其他安全威胁,确保数据库系统的完整性、可用性和保密性。常见的数据库安全特性:访问控制、数据加密、审计和监控、数据完整性、数据备份和恢复、数据脱敏、异常检测和防范。兼容原数据库的安全特性可以帮助组织顺利迁移或升级数据库系统,同时保持数据的安全性和完整性。在进行数据库系统替换或升级之前,建议对数据库安全特性进行仔细评估和规划,确保数据库系统在安全方面的兼容性得到充分考虑。

❖ 兼容项:<生态工具>

数据库生态工具是指与数据库系统相关的一系列软件和工具,用于管理、监控、优化和扩展数据库系统的功能和性能。这些工具涵盖了数据库开发、运维、安全、备份恢复、性能调优等不同领域,旨在帮助数据库管理员和开发人员更好地管理和利用数据库系统。兼容原有数据库的生态工具,可以大大降低用户的学习成本,复用原有生态工具,可以减少用户在数据库生态方面的投入,降低用户成本。

2. 各家数据库兼容性能力说明

1).OceanBase 

OceanBase 是在租户级别提供对数据库的兼容能力,即在一个系统中可同时支持 MySQL 模式和 Oracle 模式两种模式的租户。用户在创建租户时,可选择创建 MySQL 兼容模式的租户或 Oracle 兼容模式的租户,租户的兼容模式一经确定就无法更改,所有数据类型、SQL 功能、视图等相应地与 MySQL 数据库或 Oracle 数据库保持一致。

❖ Oracle 兼容性

OceanBase 数据库从 V2.x.x 版本开始支持 Oracle 兼容模式。Oracle 模式目前能够支持绝大部分的 Oracle 语法和过程性语言功能,可以做到大部分的 Oracle 业务进行少量修改后的自动迁移。OceanBase 数据库在数据类型、SQL 功能和数据库对象等基本功能上与 Oracle 数据库兼容。在过程化程序语言(Procedural Language,PL)方面,已经基本能够兼容全部的研发功能。在数据库安全、备份恢复、高可用和优化器等高级特性上 OceanBase 数据库的兼容性也非常好,而且有些特性还要优于 Oracle 数据库。这意味着在从 Oracle 数据库迁移到 OceanBase 数据库的过程中,用户不需要消耗大量的时间去学习新知识,即可流畅地实现从 Oracle 数据库到 OceanBase 数据库的迁移。

❖ MySQL 兼容性

MySQL 模式是为降低 MySQL 数据库迁移至 OceanBase 数据库所引发的业务系统改造成本,同时使业务数据库设计人员、开发人员、数据库管理员等可复用积累的 MySQL 数据库技术知识经验,并能快速上手 OceanBase 数据库而支持的一种租户类型功能。OceanBase 数据库的 MySQL 模式兼容 MySQL 5.7 的绝大部分功能和语法,兼容 MySQL 5.7 版本的全量以及 8.0 版本的部分 JSON 函数,基于 MySQL 的应用能够平滑迁移。

❖ 评估+迁移工具

OceanBase 迁移评估工具(OceanBase Migration Assessment,OMA)是 OceanBase 提供的数据库迁移评估的产品,为数据迁移提供精准的兼容性评估、高效的性能评估以及应用逻辑改造建议。OMA 支持评估 Oracle、DB2 LUW、PostgreSQL 等多种数据库与 OceanBase 的兼容情况,提供画像分析和自动转换方案;支持应用负载回放功能,帮助客户预知迁移后可能的性能风险并提供优化方案;OMA 还支持评估 C、Java 业务代码以及驱动的兼容性以助力用户高效率、低成本迁移至OceanBase。

OceanBase 数据迁移工具(OceanBase Migration Service,OMS)是 OceanBase 数据库一站式数据传输和同步的产品。它支持多种关系型数据库、消息队列与 OceanBase 数据库之间的数据复制,是集数据迁移、实时数据同步和增量数据订阅于一体的数据传输服务,OMS 帮助您低风险、低成本、高效率的实现 OceanBase 的数据流通,助力构建安全、稳定、高效的数据复制架构。

2).GoldenDB

GoldenDB 数据库提供了对 Oracle、MySQL 的兼容能力。

❖ Oracle 兼容性

GoldenDB 分布式数据库兼容 SQL92、99、2003SQL标准,同时兼容常用 Oracle 语法,其支持的语法类别全面覆盖数据库语法类别,包括DDL、DML、DQL等等。同时,GoldenDB对跨节点的复杂 SQL 操作支持全面,使得业务人员的开发工作量大幅降低,无需考虑大量的SQL改造。

❖ MySQL 兼容性

GoldenDB 分布式数据库完全兼容 MySQL 语法,兼容SQL92、99、2003SQL标准,其支持的语法类别全面覆盖数据库语法类别,包括DDL、DML、DQL等等。

❖ 迁移工具

GoldenDB数据迁移工具SLOTH,完成 GoldenDB 数据库与GoldenDB(包括不同的分片数量场景)、异构数据库(Oracle、MySQL等)之间的全量数据、增量数据的迁移和同步,同时提供迁移过程中的数据比对功能。

3).GaussDB高斯数据库

❖ MultiDB 兼容

GaussDB 是华为自主创新研发的分布式关系型数据库。GaussDB 可以在创建数据库时,通过参数 DBCOMPATIBILITY 指定兼容数据库的类型,支持 A、B、C和PG四种兼容模式,分别表示兼容 Oracle、MySQL、Teradata(TD)和PostgreSQL。但是C目前已经放弃支持,因此常用的取值是A、B、PG。不同兼容模式下的语法行为存在一定差异,默认为A兼容模式。此外,为了适配 MySQL 语句及pymysql、JDBC等多种连接方式,GaussDB新增了 M-Compatibility 协议,简称为M-Compatibility兼容模式。

❖ 评估+迁移工具

UGO,全称为数据库和应用迁移 UGO,是专注于异构数据库结构迁移的专业服务。可将源数据库中的DDL、DML和DCL一键自动转换为华为云GaussDB/RDS的SQL语法,通过数据库评估、对象迁移两大核心功能和自动化语法转换,提前识别可能存在的改造工作、提高转化率、最大化降低用户数据库迁移成本。在异构数据库迁移场景中,UGO实现结构迁移和语法转化,数据复制服务 DRS实现异构数据库数据在线搬迁,可以形成完整的平滑异构数据库端到端搬迁方案。

4).TDSQL

TDSQL,是腾讯云提供的一个数据库品牌,包含多个产品。按照其生态兼容,主要是两款 TDSQL-MySQL、TDSQL-PG。

❖ MySQL 兼容性

TDSQL MySQL版(TDSQL for MySQL)是部署在腾讯云上的一种支持自动水平拆分、Shared Nothing 架构的分布式数据库。TDSQL-MySQL 高度兼容 MySQL 的协议和语法,但由于架构的差异,对于 SQL 有一定的限制。

❖ PostgreSQL 兼容性

TDSQL PostgreSQL版(TDSQL for PostgreSQL)是腾讯自主研发的分布式数据库系统。TDSQL PostgreSQL版 集高扩展性、SQL 高兼容度、完整的分布式事务支持、多级容灾及多维度资源隔离等功能于一身,采用无共享的集群架构,提供容灾、备份、恢复、监控、安全、审计等全套解决方案,适用于GB级 - PB级的海量 HTAP 场景。TDSQL PostgreSQL版 完全兼容 PostgreSQL。

❖ Oracle 兼容性

TDSQL PostgreSQL版 正式孵化出 Oracle 兼容版,即 TDSQL PostgreSQL版(Oracle 兼容版),该版本高度兼容 Oracle 语法,包含数据类型与运算符、分区表、系统内置包、系统视图、函数、存储过程、PL/SQL 等语法的兼容。

5).PolarDB

PolarDB,是阿里云提供的一个数据库品牌,包含多个产品。按照其生态兼容,主要是两款 PolarDB-MySQL、PolarDB-PG。这里吐槽一下,PolarDB 产品在文档方面还需加强,关于兼容性很多内容都查不到。

❖ MySQL 兼容性

PolarDB MySQL 版是阿里巴巴自研的云原生HTAP数据库。PolarDB MySQL版100%兼容原生MySQL的多个版本,包括MySQL 5.6、MySQL 5.7和MySQL 8.0。PolarDB MySQL版的企业版基于云原生架构、计算存储分离、软硬件一体化设计,为用户提供具备超高弹性和性能、高可用和高可靠保障、高性价比的数据库服务。

❖ PostgreSQL 兼容性

PolarDB-PG 是阿里巴巴自研的新一代云原生数据库,在存储计算分离架构下,利用了软硬件结合的优势,为用户提供具备极致弹性、高性能、海量存储、安全可靠的数据库服务。PolarDB 100%兼容PostgreSQL 11,PostgreSQL 14,高度兼容Oracle。

❖ Oracle 兼容性

PolarDB是阿里巴巴自研的新一代云原生数据库,在存储计算分离架构下,利用了软硬件结合的优势,为用户提供具备极致弹性、高性能、海量存储、安全可靠的数据库服务。高度兼容Oracle。

❖ 评估+迁移工具

异构数据库迁移ADAM(Advanced Database & Application Migration)提供数据库平滑迁云解决方案,全面评估上云可行性、成本和云存储选型,内置实施协助、数据迁移、应用迁移等工具,覆盖数据库迁移的全生命周期,帮助企业降低数据库和应用迁移的风险、技术难度和实施周期,助力企业源数据库迁移上云。数据传输服务DTS(Data Transmission Service)是阿里云提供的实时数据流服务,支持关系型数据库(RDBMS)、非关系型的数据库(NoSQL)、数据多维分析(OLAP)等数据源间的数据交互,集数据同步、迁移、订阅、集成、加工于一体,助您构建安全、可扩展、高可用的数据架构。

6).TiDB

❖ MySQL  兼容性

TiDB 高度兼容 MySQL 协议,以及 MySQL 5.7 和 MySQL 8.0 常用的功能及语法。MySQL 生态中的系统工具(PHPMyAdmin、Navicat、MySQL Workbench、DBeaver 和其他工具)、客户端等均适用于 TiDB。

❖ 迁移工具

TiDB Data Migration (DM) 是将 MySQL/MariaDB 数据迁移到 TiDB 的工具,支持全量数据的迁移和增量数据的复制。

7).GreatDB

❖ MySQL + Oracle 兼容性

GreatDB 是北京万里开源软件有限公司自主研发的一款分布式关系型数据库软件。GreatDB完全兼容 MySQL 语法,兼容 SQL92、99、2003 SQL 标准,同时兼容部分 Oracle 语法,其支持的语法类别全面覆盖数据库语法类别,包括DDL、DML、DDL、TCL、常用函数、程序控制语言、批处理语法、序列等。

❖ 评估+迁移工具

GreatDTS 是万里数据库自主研发的数据库迁移工具,方便用户迁移其他数据库到GreatDB 数据库,实现应用评估、兼容性评估和数据迁移的一站式数据迁移产品,服务全量数据迁移,支持并行执行、断点续传和数据校验等功能。

8).KingBase人大金仓

❖ Oracle 兼容性

KingbaseES在其内部实现了大量的Oracle兼容特性 。这些特性 从语法或功能上对Oracle提供了原生支持。因此,在移植过程中,Oracle程序只需很少甚至不做任何改动就能在KingbaseES环境中运行。

❖ MySQL 兼容性

异构数据库移植的工作量繁重。这些工作量主要来源于:在数据类型、SQL 语言、PL/SQL 语言、甚至客户端应用编程接口等诸多方面对两个数据库所进行的、大量的语法或功能的对齐处理。同样的,从 MySQL 向 KingbasES 移植的情况也如此。为降低移植工作量,KingbaseES 在其内部实现了部分的 MySQL 兼容特性。这些特性从语法或功能上对 MySQL 提供了原生支持。因此,在移植过程中,MySQL 程序只需很少甚至不做任何改动就能在 KES 环境中运行。

❖ 迁移工具

KingbaseES 提供了 KDTS 和 KFS 2个工具完成迁移数据任务。KDTS 是 KingbaseES 提供的工具,可以用于离线迁移,并完成数据库中所有对象定义的迁移和数据的迁移。KFS 是一个单独的同步工具,可以应用于数据的同步,主要用于表结构和表数据的初始搬迁,以及初始搬迁之后数据的实时同步。KDTS 和 KFS 一起部署,可以完成一个大型系统的在线迁移。

9).DM达梦数据库

之前一直听说 DM 对 Oracle 的兼容性是比较好的,但在查看文档中发现资料甚少,只是提到了提供兼容模式及从其他数据库迁移方面的一些经验。看来文档方面,还需要多多增强。

❖ MultiDB 兼容性

DM 提供了 COMPATIBLE_MODE 参数来设置数据库的兼容性模式,0:不兼容,1:兼容 SQL92 标准,2:部分兼容 ORACLE,3:部分兼容 MS SQL SERVER,4:部分兼容 MYSQL, 5:兼容 DM6,6:部分兼容 TERADATA。该参数默认为 0。该参数为静态参数,需要重启数据库后生效。

❖ 迁移工具

DM 数据迁移工具 DM DTS 提供了主流大型数据库迁移到 DM、DM 到 DM、文件迁移到 DM 以及 DM 迁移到文件等功能。此外,这个工具也可以完成对象的迁移,但各数据库语法兼容程度不同,部分是需要手工改写。

10).GBase

❖ Oracle 兼容性

南大通用有多款数据库产品,以 GBase 8s 为例,其广泛兼容 Oracle 语法,在 PL/SQL、包、系统函数、系统视图、DML 语句、DDL 语句、数据类型、操作符等方面都有良好的兼容性,最大限度的复用用户和开发人员的数据库经验,降低产品使用门槛。

❖ 迁移工具

同步提供了数据库迁移工具。

11).AntDB

❖ Oracle 兼容性

AntDB 是一款可扩展、多租户、高可用、高性能、国产自主的分布式数据库产品,旨在为 OLTP (Online Transactional Processing)、 OLAP (Online Analytical Processing)场景提供一站式的解决方案,具备自动高可用、在线弹性扩容、内核级读写分离等特性,支持SQL2016 标准,提供高并发、高吞吐、低时延的PB级数据处理能力,方便应用平滑地从 Oracle 迁移到 AntDB。

❖ 评估+迁移工具

AntDB MTK(AntDB Migration ToolKits)是安慧科技精心打造的一款高可用、高性能的分布式数据同步复制产品, 可以在同构、异构数据库之间进行迁移评估、离线迁移、数据校验的能力。MTK使用断点续传技术,具有部署简单、 占用资源少、数据零丢失等技术特点。在兼容性评估功能方面,提供整体数据库层面的兼容度分析,通过自动化的数据采集,并在真实环境中进行模拟重演,得出准确的兼容度分析报告。可将源数据库中的DDL、DML、DCL一键自动转换为AntDB的SQL语法,通过对象评估、SQL评估和自动化语法转换,提前识别可能存在的改造工作、提高转换率、最大化降低用户数据库迁移成本。AntDB MTK负责数据库之间的复制同步,支持Oracle,MySQL,PostgreSQL, AntDB等各种数据库产品数据复制同步,实现可预期、 高效率地进行数据库迁移实施。

12).YanshanDB

❖ Oracle 兼容性

YashanDB在SQL语法、表达式运算、FILTER CONDITION、数据类型、内置函数、系统视图和PL等基本功能上均与Oracle数据库兼容,数据库管理和开发人员不需要花费大量的时间去学习新知识,在已交付特性上直接查阅Oracle相关文档,也可流畅地操作使用YashanDB,实现从Oracle数据库到YashanDB的平滑迁移。

❖ 评估+迁移工具

崖山迁移平台(YashanDB Migration Platform,YMP)是YashanDB提供的数据库迁移产品,提供异构RDBMS与YashanDB之间进行迁移评估、离线迁移、数据校验的能力。YMP提供可视化服务,用户只需通过简单的界面操作,即可完成从评估到迁移整个流程的执行与监控,实现低门槛、低成本、高效率的异构数据库迁移。

13).Klustron

❖ MySQL+PG 兼容性

Klustron 同时支持 MySQL 和 PostgreSQL 两种数据库的连接协议和 SQL 语法,可以无缝对接 MySQL 和PostgreSQL 这两大世界顶级开源数据库生态。Klustron 支持所有常见编程语言的 MySQL 和 PostgreSQL 客户端连接库,用这些编程语言编写的软件都可以连接到 Klustron 并正确执行所有符合SQL 标准的 SQL 语句,以及 MySQL和 PostgreSQL 私有的 DML SQL 语句。相应的数据迁移工作也可以借助 Klustron 和第三方的数据导入工具一键完成。

❖ 迁移工具

针对MySQL和PostgreSQL数据库,提供了全量+增量的迁移工具。

14).HaloDB

❖ MultiDB 兼容性

HaloDB可以通过一款数据库设置不同的兼容模式,如此优异的特性得益于 HaloDB 的多模式兼容引擎,HaloDB 数据库具有独有的多模解析引擎技术,可以兼容 PostgreSQL、Oracle、Sybase、MySQL、SQL Server、DB2 等主流数据库语法从而大幅减少迁移项目中的代码修改量。HaloDB 通过参数 database_compat_mode,表示数据库运行模式。默认值为 postgresql,其它可取值包括 oracle 、mysql、sybase、sqlserver、db2 等。其中部分数据库,如MySQL,还提供了协议方面的支持。

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

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

相关文章

论文翻译:通过云计算对联网多智能体系统进行预测控制

通过云计算对联网多智能体系统进行预测控制 文章目录 通过云计算对联网多智能体系统进行预测控制摘要前言通过云计算实现联网的多智能体控制系统网络化多智能体系统的云预测控制器设计云预测控制系统的稳定性和一致性分析例子结论 摘要 本文研究了基于云计算的网络化多智能体预…

服务器操作集合

服务器使用PC作为代理访问外网 1、PC上启动代理&#xff0c;比如nginx 下载nginx&#xff1a;http://nginx.org/en/download.html 修改配置文件&#xff0c;在conf下&#xff1a; http {include mime.types;default_type application/octet-stream;sendfile o…

[BJDCTF2020]EzPHP1

知识点&#xff1a;1. url编码绕过 2. %0a绕过 3. post优先级绕过 4. php伪协议 5. 数组的强类型比较绕过 6. 取反绕过 进入之后发现了一个很帅气的页面&#x1f60e;~ 看看网页源代码试试~ 是base32编码&#xff0c;尝试一下解码. https://www.qqxiuzi.cn/bianma/base.php 解…

Qt实现MDI应用程序

本文记录Qt实现MDI应用程序的相关操作实现 目录 1.MDM模式下窗口的显示两种模式 1.1TabbedView 页签化显示 1.2 SubWindowView 子窗体显示 堆叠cascadeSubWindows 平铺tileSubWindows 2.MDM模式实现记录 2.1. 窗体继承自QMainWindow 2.2.增加组件MdiArea 2.3.定义统一…

Ubuntu18.04安装ROS

1.添加ROS软件源 sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.listcurl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc输入指令&#xff1a;curl -s https:…

基于IDEA的Lombok插件安装及简单使用

lombok介绍 Lombok能以注解形式来简化java代码&#xff0c;提高开发效率。开发中经常需要写的javabean&#xff0c;都需要花时间去添加相应的getter/setter&#xff0c;也许还要去写构造器、equals等方法&#xff0c;而且需要维护。而Lombok能通过注解的方式&#xff0c;在编译…

acrobat 中 PDF 复制时不能精确选中所选内容所在行的一种解决方法

现象&#xff1a;划取行的时候&#xff0c;自动扩展为多行 如果整段选中复制&#xff0c;粘贴后是乱码 解决步骤 识别完&#xff0c;保存 验证 可以按行复制了。 如果遇到仅使用 acrobat OCR 不能彻底解决的&#xff0c;更换其他自己熟悉的进行 OCR。

springboot 适配ARM 架构

下载对应的maven https://hub.docker.com/_/maven/tags?page&page_size&ordering&name3.5.3-alpinedocker pull maven:3.5.3-alpinesha256:4c4e266aacf8ea6976b52df8467134b9f628cfed347c2f6aaf9e6aff832f7c45 2、下载对应的jdk https://hub.docker.com/_/o…

路网双线合并单线——ArcGISpro 解决方法

路网双线合并成单线是一个在地图制作、交通规划以及GIS分析中常见的需求。双线路网定义&#xff1a;具有不同流向、不同平面结构的道路。此外&#xff0c;车道数较多的道路&#xff08;例如&#xff0c;双黄实线车道数大于4的道路&#xff09;也可以视为双线路网&#xff0c;本…

Web开发:<br>标签的作用

br作用 介绍基本用法常见用途注意事项使用CSS替代 介绍 在Web开发中&#xff0c;<br> 标签是一个用于插入换行符的HTML标签。它是“break”的缩写&#xff0c;常用于需要在文本中强制换行的地方。<br> 标签是一个空标签&#xff0c;这意味着它没有结束标签。 基本…

docker inspect 如何提取容器的ip和端口 网络信息?

目录 通过原生Linux命令过滤找到IP 通过jq工具找到IP 使用docker -f 的过滤&#xff08;模板&#xff09; 查找端口映射信息 查看容器内部细节 docker inspect 容器ID或容器名 通过原生Linux命令过滤找到IP 通过jq工具找到IP jq 是一个轻量级且灵活的命令行工具&#xf…

C语言 ——— 调试的时候如何查看当前程序的变量信息

目录 调试前/后的调试窗口 ​编辑 调试窗口 --- 监视 调试窗口 --- 内存 调试窗口 --- 调用堆栈 调试前/后的调试窗口 调试前的调试窗口&#xff1a; 调试前的调试窗口是没有显示的&#xff0c;只有在调试的时候才会有相对应的调试窗口 调试后的调试窗口&#xff1a…

基于SpringBoot+VueJS+微信小程序技术的图书森林共享小程序设计与实现

注&#xff1a;每个学校每个老师对论文的格式要求不一样&#xff0c;故本论文只供参考&#xff0c;本论文页数达到60页以上&#xff0c;字数在6000及以上。 基于SpringBootVueJS微信小程序技术的图书森林共享小程序设计与实现 目录 基于SpringBootVueJS微信小程序技术的图书森…

AI算法16-贝叶斯线性回归算法Bayesian Linear Regression | BLR

贝叶斯线性回归算法简介 频率主义线性回归概述 线性回归的频率主义观点可能你已经学过了&#xff1a;该模型假定因变量&#xff08;y&#xff09;是权重乘以一组自变量&#xff08;x&#xff09;的线性组合。完整的公式还包含一个误差项以解释随机采样噪声。如有两个自变量时…

2024Datawhale AI夏令营---基于术语词典干预的机器翻译挑战赛--学习笔记

#Datawhale #NLP 1.背景介绍&#xff1a; 机器翻译&#xff08;Machine Translation&#xff0c;简称MT&#xff09;是自然语言处理领域的一个重要分支&#xff0c;其目标是将一种语言的文本自动转换为另一种语言的文本。机器翻译的发展可以追溯到20世纪50年代&#xff0c;经历…

各向异性含水层中地下水三维流基本微分方程的推导(二)

各向异性含水层中地下水三维流基本微分方程的推导 参考文献&#xff1a; [1] 刘欣怡,付小莉.论连续性方程的推导及几种形式转换的方法[J].力学与实践,2023,45(02):469-474. 书接上回&#xff1a; 我们能得到三个方向的流入流出平衡方程&#xff1a; ∂ ρ u x ∂ x d x d y d…

2024-07-15 Unity插件 Odin Inspector4 —— Collection Attributes

文章目录 1 说明2 集合相关特性2.1 DictionaryDrawerSettings2.2 ListDrawerSettings2.3 TableColumnWidth2.4 TableList2.5 TableMatrix 1 说明 ​ 本文介绍 Odin Inspector 插件中集合&#xff08;Dictionary、List&#xff09;相关特性的使用方法。 2 集合相关特性 2.1 D…

jmeter-beanshell学习10-字符串补齐位数

每天都遇到新问题&#xff0c;今天又一个场景&#xff0c;一个字符串&#xff0c;如果不足11位&#xff0c;则左边补0&#xff0c;补够11位。 先要获取字符串长度&#xff0c;然后计算差多少位&#xff0c;补齐。今天又发现一个Object类型&#xff0c;这个类型有点厉害&#x…

Ctrl+C、Ctrl+V、Ctrl+X 和 Ctrl+Z 的起源

注&#xff1a;机翻&#xff0c;未校对。 The Origins of CtrlC, CtrlV, CtrlX, and CtrlZ Explained We use them dozens of times a day: The CtrlZ, CtrlX, CtrlC, and CtrlV shortcuts that trigger Undo, Cut, Copy, and Paste. But where did they come from, and why do…

Activity启动流程

1 冷启动与热启动 应用启动分为冷启动和热启动。 冷启动&#xff1a;点击桌面图标&#xff0c;手机系统不存在该应用进程&#xff0c;这时系统会重新fork一个子进程来加载Application并启动Activity&#xff0c;这个启动方式就是冷启动。 热启动&#xff1a;应用的热启动比冷…