DocumentDB - SQL Server

JSON 文件非常适合,它们可能能够按原样导入到 DocumentDB。 然而,从像 SQL Server 这样的关系数据库导入将需要某种转换,这意味着我们需要以某种方式弥合 SQL Server 中的规范化数据与其在 DocumentDB 中的非规范化表示之间的差距。

让我们看一个简单的示例,在其中我们将了解迁移工具如何从 SQL Server 数据库导入。 在此示例中,我们将从 AdventureWorks 2014 数据库导入数据。 AdventureWorks 是一个流行的示例数据库,您可以按照以下步骤从 CodePlex 下载。

步骤 1 − 转到 https://www.codeplex.com/

步骤 2 − 在搜索框中搜索 AdventureWorks 2014。

搜索框

步骤 3 − 为示例数据库选择推荐的版本。

选择推荐版本

最容易选择的下载是推荐的下载,即完整数据库备份。

选择推荐的

步骤 4 − 单击并将 zip 文件保存到任意文件夹,然后提取包含数据库备份文件的 zip 文件。

步骤 5 − 打开 SQL Server Management Studio,连接到我的本地 SQL Server 实例并恢复备份。

连接本地 SQL Server

步骤 6 − 右键单击数据库 → 恢复数据库。 单击"浏览"按钮。

恢复数据库

您将看到以下窗口。

选择备份设备

步骤 7 − 单击"添加"按钮。

单击添加按钮

步骤 8 − 浏览数据库备份文件并单击"确定"。 然后再按一次"确定",即可开始恢复。

单击确定

我们已经成功恢复。

恢复成功

嗯,这是一个很大的数据库,肯定有很多表,所以让我们看看视图。

这看起来更易于管理,而且大多数视图都是通过将多个相关表连接在一起来工作的,所以让我们看一下这个名为 vStoreWithAddresses 的视图,它是在 Sales 架构中定义的。

Sales 架构

我们从连接所有表的视图中进行选择,并根据 AddressType 进行过滤,这仅向我们提供主要办公室。

SELECT 
   CAST(BusinessEntityID AS varchar) AS [id], 
   Name AS [name], 
   AddressType AS [address.addressType], 
   AddressLine1 AS [address.addressLine1], 
   City AS [address.location.city], 
   StateProvinceName AS [address.location.stateProvinceName], 
   PostalCode AS [address.postalCode], 
   CountryRegionName AS [address.countryRegionName] 
FROM 
   Sales.vStoreWithAddresses 
WHERE 
   AddressType='Main Office' 

执行上述查询时,您将收到以下输出。

输出

让我们启动 GUI 版本迁移工具。

GUI 版本

步骤 1 − 在欢迎页面上,单击"下一步"进入源信息页面。

第 2 步 − 从下拉菜单中选择 SQL 并指定数据库连接字符串。

指定连接

步骤 3 − 单击"验证"按钮。

单击验证

如果指定了正确的连接字符串,则会显示成功消息。

步骤 4 − 输入您要导入的查询。

输入查询

步骤 5 − 单击"下一步"。

单击下一步

步骤 6 − 指定 DocumentDB 帐户中的连接字符串,该帐户可以从 Azure 门户中找到。

指定连接字符串

步骤 7 − 指定主连接字符串,不要忘记在连接字符串末尾添加数据库名称。

主连接

步骤 8 − 指定要添加 JSON 文件的集合。

步骤 9 − 单击"高级选项"并向下滚动页面。

高级选项

步骤 10 − 指定索引策略,假设范围索引策略。

范围索引

步骤 11 − 单击"下一步"继续。

单击下一步

步骤 12 − 再次单击"下一步"继续。

SQL 数据迁移下一步

步骤 13 − 您可以在此处看到摘要,现在单击"导入"按钮。

单击导入

它将开始导入数据。 完成后,您可以在Azure Portal上看到。

Sql 导入完成

documentdb_data_migration.html