我正在試驗DocumentDB作爲新應用程序的可能數據存儲。該應用程序必須處理大量數據,因此我使用數據遷移工具將大量文檔放入集合中。DocumentDB存儲過程延續
我的應用程序中的大部分查詢都將進行彙總和求和。所以我使用documentdb-lumenize。該code sample調用從C#是存儲過程我做這樣的事情:
var configString = @"{
cubeConfig: {
groupBy: 'year',
field: 'Amount',
f: 'sum'
},
filterQuery: 'SELECT * FROM TestLargeData t'
}";
var config = JsonConvert.DeserializeObject<object>(configString);
var result = await _client.ExecuteStoredProcedureAsync<dynamic>("my/sproc/link", config);
結果我回來是這樣的:
{
"cubeConfig": {
"groupBy": "year",
"field": "Amount",
"f": "sum"
},
"filterQuery": "SELECT * FROM TestLargeData t",
"continuation": "-RID:rOtjAPc4TgBxFwAAAAAAAA==#RT:6#TRC:6000",
"stillQueueing": false,
"savedCube": {
"config": {
"groupBy": "year",
"field": "Amount",
"f": "sum"
},
"cellsAsCSVStyleArray": [
[
"year",
"_count",
"Amount_sum"
],
[
2006,
4825,
1391399555.74
],
[
2007,
1175,
693886378
]
],
"summaryMetrics": {}
},
"example": {
"year": 2007,
"SomeOtherField1": "SomeOtherValue1",
"SomeOtherField2": "SomeOtherValue2",
"Amount": 12000,
"id": "0ee80b66-7fa7-40c1-9124-292c01059562",
"_rid": "...",
"_self": "...",
"_etag": "\"...\"",
"_attachments": "attachments/",
"_ts": ...
}
}
的_count值表明,我回到6000個文檔的價值的彙總數據。有一百萬份文檔(我想測試大!)
我在結果中看到「continuation」值。但StoredProcedureResponse沒有像DocumentQuery類那樣的ExecuteNextAsync方法。我如何使用DocumentDB API來請求下一部分數據?
謝謝拉里。通過「返回什麼返回」你的意思是採取我得到的整個「結果」JSON和替換「configString」? –
是的,整個結果。如果這變得很大,我有一個版本將狀態存儲在文檔中,並且只是來回傳遞一個令牌。你仍然需要調用它,但有效載荷大大減少。讓我知道你是否想要這個版本。 –
我會試一試並跟進。非常感謝您的幫助! –