テーブルに300k行を挿入するクエリを書いていますが、挿入の実行中に404ファイルまたはディレクトリが見つかりませんというエラーが発生します。私は紺碧の初心者なので、愚かなコードを書いたかもしれません
ここでDynamicTableEntityオブジェクトを作成します:
Test t = new Test();
t.CreateTable("table2");
Dictionary<string, EntityProperty> dic;
Random random = new Random();
ArrayList part1 = new ArrayList();
ArrayList part2 = new ArrayList();
ArrayList part3 = new ArrayList();
ArrayList part4 = new ArrayList();
ArrayList part5 = new ArrayList();
ArrayList part6 = new ArrayList();
DynamicTableEntity dte;
Stopwatch sw = new Stopwatch();
Guid guid;
sw.Start();
for (int i = 0; i < 300000; i++)
{
dic = new Dictionary<string, EntityProperty>();
dic.Add("count", new EntityProperty(i));
dic.Add("rand1", new EntityProperty(random.Next()));
dic.Add("rand2", new EntityProperty(random.Next()));
dic.Add("rand3", new EntityProperty(random.Next()));
if(i!=5)
dic.Add("rand4", new EntityProperty(random.Next()));
else
dic.Add("rand4", new EntityProperty(1234561));
if (i % 2 == 0)
dic.Add("randInt", new EntityProperty(random.Next()));
else
dic.Add("String", new EntityProperty("This is a string" + i));
guid = Guid.NewGuid();
dte = new DynamicTableEntity("0" + (i % 3), DateTime.UtcNow.Ticks.ToString() + guid + i);
dte.Properties = dic;
if (i % 6 == 0)
part1.Add(dte);
else if (i % 6 == 1)
part2.Add(dte);
else if(i%6==2)
part3.Add(dte);
else if (i % 6 == 3)
part4.Add(dte);
else if (i % 6 == 4)
part5.Add(dte);
else if (i % 6 == 5)
part6.Add(dte);
if( (i + 1) % 600 == 0)
{
t.Insert("table2", part1, part2, part3, part4, part5, part6);
part1.RemoveRange(0,100 );
part2.RemoveRange(0, 100);
part3.RemoveRange(0, 100);
part4.RemoveRange(0, 100);
part5.RemoveRange(0, 100);
part6.RemoveRange(0, 100);
}
}
そして、これが挿入実行コードです:
CloudTable table = _tableClient.GetTableReference(tableName);
TableBatchOperation tablebatchoperation;
int i = 0, j = 0;
if (created == false)
table.CreateIfNotExists();
foreach (ArrayList k in l)
{
tablebatchoperation = new TableBatchOperation();
foreach (DynamicTableEntity dte in k)
{
tablebatchoperation.Insert(dte);
}
table.ExecuteBatch(tablebatchoperation);
}
私はあなたの助けに感謝します