[英]Azure function cosmos db sql query with ARRAY CONTAINS on string array
[英]Migrate JSON data from Azure SQL DB to Cosmos DB results in string values
我正在嘗試使用 CosmosDB 數據遷移工具從 SQL DB 遷移數據,我成功地從 SQL DB 遷移了數據,但結果是所有值都是字符串
想知道是否有辦法在遷移過程中將這些 JSON 轉換為 Object?
這是我的示例查詢
select
json_value(Data, '$.timestamp') as timestamp,
json_query(Data, '$.Product.detail') as [Product.detail],
json_value(Data, '$.Product.price') as [Product.price]
from myTable
嵌套分隔符:.
一種選擇是將您的 SQL 數據導出為純 CSV 文件,使用您喜歡的工具進行任何重新格式化,然后使用 Cosmos 遷移工具導入清理過的 CSV 或 JSON 文件。
例如,使用 PowerShell,該過程可能是:
1.創建數據流並使用 SQL DB 作為源。
2.在源選項中選擇Query
:
查詢語句:
select
json_value(Data, '$.timestamp') as timestamp,
json_query(Data, '$.Product.detail') as [Product.detail],
json_value(Data, '$.Product.price') as [Product.price]
from test3
3.創建一個DerivedColumn
,並改變列的類型。 Product
:
@(detail=split(replace(replace(replace(byName('Product.detail'),'[',''),']',''),'"',''),','),
price=toDouble(byName('Product.price')))
4. 選擇 Cosmos DB 作為接收器並進行映射,如下所示:
5.創建管道並添加之前創建的數據流,然后單擊調試按鈕或添加觸發器以執行它。
6.結果:
{
"Product": {
"price": 300.56,
"detail": [
"eee",
"fff"
]
},
"id": "d9c66062-63ce-4b64-8bbe-95dcbdcad16d",
"timestamp": 1600329425
}
更新:
您可以啟用數據流調試按鈕,並在數據預覽中查看表達式的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.