我们有一个.Net应用程序,它从Kusto获取巨大的结果集(超过5,000,000行),在内存中进行处理,并将其加载到Azure Cosmos DB中。
我们正在使用IDataReader来避免将所有数据同时加载到内存中。 但是,我们发现在从IDataReader读取第一条记录之前,所有结果都已加载到内存中。 有没有一种方法可以对结果数据集进行真正的流传输?
using (ICslQueryProviderclient = KustoClientFactory.CreateCslQueryProvider(connectionString))
{
string query = @;
client.ExecuteQuery("PageViewEvents | // some aggregation logic...", new ClientRequestProperties());
// At this point, all results have already been loaded to memory. That takes 2GB memory!
while (reader.Read())
{
// Load current record to Azure Cosmos DB
}
}
答案 0 :(得分:1)
//Template
<div class="an-input">
<input
[type]="type"
[id]="id"
[name]="name"
(focus)="inputFocus($event)"
(blur)="inputBlur($event)"
(input)="userTyping($event)"
class="an-input-el"
/>
<label [for]="id">
{{label}}
</label>
</div>
//Styles
.an-input{
display: inline-block;
position: relative;
width: 100%;
margin-bottom: 30px;
& input, & textarea{
padding: 15px;
color: $an-color;
border: none;
outline: none;
border: 2px solid $font-darker;
border-radius: 2px;
width: 100%;
&.input-fly{
border-color: $an-color;
}
&.input-fly-error{
border-color: maroon;
}
}
& label{
position: absolute;
left: 0;
padding: 0 10px;
font-size: 13px;
transition: .1s;
cursor: text;
color: $font-darker;
font-size: 11px;
&.label-fly{
padding: 0px;
color: $an-color;
}
}
}
属性作为连接字符串的一部分:https://docs.microsoft.com/en-us/azure/kusto/api/connection-strings/kusto#client-communication-properties streaming
选项无济于事,您可以将当前单个查询“拆分”为多个查询(根据数据中的特定列,例如{{1 }}列或streaming
,或使用datetime
)