【问题标题】:Best way to move XML data from a SQL Server 2016 DB to Cosmos DB将 XML 数据从 SQL Server 2016 DB 移动到 Cosmos DB 的最佳方式
【发布时间】:2018-02-16 17:29:15
【问题描述】:

拥有一个包含约 10 GB 数据的 SQL Server 2016 表。我必须将存储在该表中的 XML 列中的 XML 数据迁移到 Cosmos DB。

这是一项一次性工作,迁移后此类数据将直接写入 Cosmos DB(来自用 C# 编写的 API)。

迁移它的最佳方法是什么?我知道有一个 Azure Cosmos DB 迁移工具,但不知道如何使用它迁移 XML 列。还有其他更好的解决方案吗?

【问题讨论】:

  • 你知道有一个工具,但没有尝试过?
  • 感谢您假设我没有尝试过!奇怪的是,即使您不了解您对这个问题投反对票的问题,也很奇怪。我确实尝试过但没有成功,因为我不知道如何迁移它。人们还说 cosmos db 不适合 xml,您需要在执行之前将其更改为 json。这就是为什么我问最好的方法是什么。

标签: sql-server azure-cosmosdb sql-server-2016


【解决方案1】:

在 SQL Server 2016 中将 Xml 数据转换为 JSON。这应该不是一项非常艰巨的任务.. 批量处理。

伪代码:

    DECLARE @xml XML = '<?xml version="1.0"?>
    <header>
       <rdms id="1">
          <sqlserver>MSSQL1</sqlserver>
       </rdms>
       <rdms id="1">
          <sqlserver>MSSQL2</sqlserver>
       </rdms>
       <rdms id="2">
          <oracle11g>cc11</oracle11g>
       </rdms>
     </header>''';

SELECT x.value('@id', 'nvarchar(MAX)') AS rdms
    ,x.value('sqlserver[1]', 'nvarchar(MAX)') AS [Server]
    ,x.value('oracle11g[1]', 'nvarchar(MAX)') AS [Oracle]
FROM @xml.nodes('/header/rdms') AS a(x)
FOR JSON AUTO

然后使用 Cosmosdb 迁移工具将 JSON 数据加载到 CosmosDB...

阅读下面的内容.. https://docs.microsoft.com/en-us/sql/t-sql/xml/nodes-method-xml-data-type

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多