MariaDB到SQL Server5种简单的方法

599 阅读8分钟

MariaDB到SQL Server5种简单的方法

Davor DSouza关于数据集成数据库管理系统ETLETL教程MariaDBMicrosoft SQL ServerSQL Server- 2022年6月9日 -Write for Hevo

数据库迁移是任何企业应用变更管理策略的一个重要组成部分。当你改变数据库时,许多事情都会发生变化,包括你的业务和技术基础设施。数据库迁移的主要原因是提高性能,采用更可靠和安全的平台,DBMS的现代化,以及削减成本。

任何数据库迁移过程都是有利有弊的。主要的挑战是源数据的复杂性、数据损坏、基础设施兼容性和安全性。因此,数据迁移策略必须是有效的、可逆的、防故障的、可审计的和安全的。

阅读这篇博客,了解如何将MariaDB迁移到SQL Server,如果你想快速、轻松地获得可供分析的数据。

目录

什么是MariaDB?

MariaDB是MySQL的一个克隆,是由MySQL的原始开发者创建的一个流行的开放式SQL(结构化查询语言)RDBMS。它们相似的主要原因是,MariaDB是MySQL的一个软件分支。它的核心是MySQL的源代码。然而,它们是不一样的。自2009年以来,MariaDB有了很大的进步,当时许多MySQL作者从同一源头创建了不同的版本。

当甲骨文公司收购MySQL时,开发人员对他们产品的未来表示担忧。他们担心甲骨文公司会杀死MySQL以消除一个关键的竞争对手。他们还想确保他们的工作可以免费使用。这就是MariaDB首次出现在舞台上的原因。

除了Windows版本,MariaDB还有Linux和macOS的版本。这个RDBMS被英特尔和IBM Power8硬件所支持。它可以作为一种服务在亚马逊网络服务(AWS)、Rackspace云和微软Azure上使用。该方法简单易学,安全,使用方便。它越来越受欢迎也就不奇怪了。

MariaDB的主要特点

  • **SQL支持。**MariaDB支持大部分的SQL语句、函数、程序、定义、变量等。此外,还有许多有用的插件,如审计插件等。所有这些功能都大大简化了MariaDB的数据库操作。
  • 线程池。线程池是一个概念,当有多个连接到数据库时,可以加速MariaDB的工作。MariaDB不是为每个连接创建一个新的线程,而是使用一个先前开放的线程池。查询是由一个新的连接发送的,这需要一个线程。所有的搜索都变得更快,从而产生更快的结果。
  • 兼容性。对于数据查询,MariaDB采用了广泛使用的SQL语言。它与广泛的编程语言和操作系统兼容。它在Windows和Linux上运行,支持Python、PHP、C++、Java、JavaScript、Ruby等语言。
  • JSON的兼容性。J SON是一种被广泛使用的数据存储格式。所有MariaDB 10.2及以后的版本都包含对JSON的支持。

什么是微软SQL服务器?

Microsoft SQL Server是一个关系型数据库管理系统(RDBMS)。它有数百个核心同时运行,可以存储PB级的数据。它包括一个强大的查询层,用于商业分析,并与Power BI等报告解决方案紧密结合。对Spark的支持已经内置于较新的版本中,允许用户用Spark SQL分析大量的数据,而无需太多的额外配置。

微软SQL服务器已经建立了自己作为一个用户友好、可靠和有效的数据库系统。它在ANSI SQL上运行,是行业标准的SQL(结构化查询语言)。SQL数据库是纵向可扩展的,其强大的查询层有助于业务分析,并容易与报告和可视化工具(如Power BI)集成。

SQL服务器的主要特点

考察以下促成SQL Server大受欢迎的关键特征。

  • 数据库的引擎。数据库引擎加速了交易处理,同时也简化了数据存储和安全。
  • 服务器的代理。它主要是作为一个项目调度器,可以由任何事件或响应一个请求而触发。
  • **SQL服务器浏览器。**服务器浏览器接受查询,并将它们连接到适当的SQL Server实例。
  • SQL Server中的全文搜索。客 户可以对SQL表中的字符记录进行全文搜索,顾名思义。
  • **SSRS(SQL Server Reporting Services)。**通过Hadoop整合提供数据报告功能和动态能力。
  • 对云数据库的支持。SQL Server可以很容易地与Azure SQL或微软云整合,并具有内置的安全性。对云数据库的支持使SQL Server更具吸引力,并允许即时故障转移,将停机时间降到最低。

如何将数据从MariaDB迁移到SQL Server?

有几种方法可以将数据从MariaDB转移到SQL Server。

如果这些表在SQL Server中根本不存在,我们必须首先生成一个转储。这个转储可能包含数据,也可能不包含数据。

如果这些表已经在SQL Server中存在,我们可以使用CSV文件而不是转储来移动这些行。CSV文件是在技术之间传输数据的最紧凑的格式。

对于已经在SQL Server中的表,移动数据的另一个选择是将行插入到 "指向 "远程SQL Server表的CONNECT表中。

1) 利用转储(结构)

mysqldump可以创建所有数据库、单个数据库或一组表的转储。通过使用WHERE子句,你甚至可以只转储一个子集的行。

我们可以通过指定-no-data选项来转储没有数据的表结构。

-compatible=mssql将生成应该能在SQL Server中工作的输出。

2)利用转储(数据)的作用

默认情况下,mysqldump产生的输出包括数据和结构。

为了避免CREATE TABLE语句,使用-no-create-info。

-compatible=mssql将产生应该在SQL Server中工作的输出。

-single-transaction应该被用来在一个单一的事务中选择源数据,从而产生一个一致的转储。

当转储大表时,它能迅速加快转储过程。

3) 利用CSV文件

数据也可以使用CSV文件从MariaDB导出到SQL Server。有几种方法可以从MariaDB生成CSV文件。

  • 语句SELECT INTO OUTFILE。
  • CONNECT存储引擎的CSV表类型。
  • CSV存储引擎(注意,不支持NULL和索引)。

以上是将数据从MariaDB导出到SQL Server的简单3种方法。

4) 行动中的CONNECT表

CONNECT存储引擎可以访问各种格式的外部数据。

  • 包含数据的文件(CSV、JSON、XML、HTML等)。
  • 可以通过ODBC或JDBC标准,或通过MariaDB/MySQL本地协议访问远程数据库。
  • 一些独特的数据源。
  • 之前提到了CONNECT,因为它可以读取CSV文件并以SQL方式查询,过滤和转换我们想要转移到普通MariaDB表中的数据。

另一方面,CONNECT可以连接到远程SQL Server表。我们可以读取甚至是写入数据。为了使CONNECT在MariaDB到SQL Server中工作,我们必须满足以下要求。

  • 安装ODBC驱动,该驱动可以从微软网站上获得。该驱动的Linux和macOS版本也可获得。
  • 设置unixODBC。
  • 安装CONNECT(除非另有规定)。

一个指向SQL Server表的CONNECT表如下所示。

#CONNECT Table for MariaDB to SQL Server

CREATE TABLE city (
    id INT PRIMARY KEY,
    city_name VARCHAR(100),
    province_id INT NOT NULL
)
    ENGINE=CONNECT,
    TABLE_TYPE=ODBC,
    TABNAME='city'
    CONNECTION='Driver=SQL Server Native Client 13.0;Server=sql-server-hostname;Database=world;UID=mariadb_connect;PWD=secret';


#MariaDB to SQL Server

5) 链接服务器

可以不使用MariaDB CONNECT,而使用SQL Server Linked Server功能。这允许你从远程MariaDB数据库读取数据,并将其复制到本地机器上的SQL Server表中。然而,应该注意的是,CONNECT为你提供了对类型和字符集映射的更多控制。

将数据从MariaDB迁移到SQL Server的好处

  • 安装简单。MariaDB的安装很简单,它使你的数据库管理员的生活更轻松。MariaDB有两个安装选项:将其作为独立的服务器安装,或者将其配置为与服务器一起工作。
  • 不间断的扩展。将数据从MariaDB迁移到SQL Server并不难,它可以处理数十亿条记录,同时在几秒钟内返回结果。它支持强大的并行处理,这大大提高了服务器的分析速度。
  • **更大的业务敏捷性。**由于频繁的市场破坏、消费者行为的改变等原因,行业和企业正在经历快速转型。将数据从MariaDB迁移到SQL Server可以提供有效的数据分析,深入的洞察力,以及应对和适应不断变化的市场动态所需的敏捷性。
  • **特设数据请求的可扩展性。**MariaDB允许你运行那些通常不属于你工作流程的查询。它确保你不局限于只使用结构化的方法来分析数据。它使你的组织能够保持服务器基础的灵活性,并根据需要扩展请求。

总结

这篇博客深入介绍了MariaDB和SQL Server,以及从MariaDB向SQL Server发送数据的各种方法。企业可以利用各种数据源来获取各种有价值的数据点。但是,将数据从这些来源转移到数据仓库进行整体分析是一项繁忙的任务。