Узел-красный CSV-файл хранилища облачных таблиц Azure

#node.js #csv #azure #azure-table-storage #node-red

#node.js #csv #azure #azure-table-storage #узел-красный

Вопрос:

Я пытаюсь прочитать файл CSV и отправить данные построчно в хранилище таблиц Azure. Я сделал данные уникальными, используя временную метку, добавляя переменную для каждого сообщения. Однако, если я отправлю две строки данных в двух сообщениях. Отображается только второе сообщение, а первое выдает ошибку:

Это первое сообщение:

 {
  "tableName":"name",
  "action":"I",
  "partitionKey":"part2",
  "rowKey":"1476649418331",
  "data":{"Column1":"Row1C1","Column2":"Row1C2","Column3":"Row1C3"}
}
 

Возврат:

 16-10-2016 22:23:39Azure Table Storage
msg : string [163]
Error while trying to save data:StorageError: The specified entity already exists. RequestId:cedf2110-0002-007f-4eeb-275e5e000000 Time:2016-10-16T20:23:40.3597774Z
 

Это второе сообщение:

 {
  "tableName":"name",
  "action":"I",
  "partitionKey":"part2",
  "rowKey":"1476649418332",
  "data":{"Column1":"Row2C1","Column2":"Row2C2","Column3":"Row2C3"}
}
 

Возврат:

 16-10-2016 22:23:39Log
msg : string [11]
data saved.
 

Это мой узел-красный поток:

 [
{"id":"9a96640e.8ac6a8","type":"tab","label":"Flow 1"},
{"id":"79f08138.3591e","type":"debug","z":"9a96640e.8ac6a8","name":"","active":true,"console":"false","complete":"payload","x":724.5,"y":119,"wires":[]},
{"id":"6ba900e3.b8c68","type":"function","z":"9a96640e.8ac6a8","name":"dynamic","func":"msg.topic = msg.payload; nreturn msg;","outputs":1,"noerr":0,"x":163.5,"y":192,"wires":[["e9ba66a6.2609f8"]]},
{"id":"881bed10.69e5","type":"function","z":"9a96640e.8ac6a8","name":"merge","func":"if (!context.value) {n context.value = 0;n}ncontext.value  =1;nnnnvar RowKey = String(msg.topic   context.value);nvar Data = msg.payload;nnmsg.payload = {"tableName": "name", "action": "I", "partitionKey": "part2", "rowKey": RowKey, "data": Data};n/*msg.payload = {"tableName": "name", "action": "I", "partitionKey": "part2", "rowKey": "row13", "data": {"Column": "Value13"}};*/nreturn msg;","outputs":1,"noerr":0,"x":404,"y":166,"wires":[["180d09fa.2000c6"]]},
{"id":"180d09fa.2000c6","type":"json","z":"9a96640e.8ac6a8","name":"","x":543,"y":210,"wires":[["79f08138.3591e","8b1be5eb.5dcbc8"]]},
{"id":"8b1be5eb.5dcbc8","type":"Table Storage","z":"9a96640e.8ac6a8","name":"Azure Table Storage","x":766.5,"y":209,"wires":[["fe41d516.3e8208"]]},
{"id":"fe41d516.3e8208","type":"debug","z":"9a96640e.8ac6a8","name":"Log","active":true,"console":"false","complete":"true","x":794.5,"y":403,"wires":[]},
{"id":"7deb1c15.482474","type":"inject","z":"9a96640e.8ac6a8","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":true,"x":76,"y":306,"wires":[["6ba900e3.b8c68"]]},
{"id":"17a020b6.e0f95f","type":"csv","z":"9a96640e.8ac6a8","name":"CSV parser","sep":"\t","hdrin":true,"hdrout":true,"multi":"one","ret":"\n","temp":"A,B,C,D","x":464,"y":305,"wires":[["1dc33972.1e6177","881bed10.69e5"]]},
{"id":"e9ba66a6.2609f8","type":"file in","z":"9a96640e.8ac6a8","name":"File Reader","filename":"D:\TESTCSV.txt","format":"utf8","x":264,"y":305,"wires":[["17a020b6.e0f95f"]]},
{"id":"1dc33972.1e6177","type":"debug","z":"9a96640e.8ac6a8","name":"","active":false,"console":"false","complete":"false","x":443,"y":405,"wires":[]}
]
 

У кого-нибудь есть идея, откуда возникла эта ошибка?

Комментарии:

1. В то же время я обнаружил, что проблемы можно избежать, если я использую узел задержки с действием: ограничить скорость до.. Это ограничивает скорость отправки сообщений на узел Azure. Единственным недостатком является то, что это резко снижает производительность, поскольку максимальное количество сообщений, которые можно отправить, составляет 1 секунду. Так что любые другие идеи приветствуются.

2. Вы просмотрели примеры рекомендаций в GitHub? Например. github.com/Azure-Samples/storage-table-node-getting-started образцы

3. Как вы реализуете функциональность? не могли бы вы предоставить какой-нибудь ключевой фрагмент кода для добавления объектов в хранилище таблиц Azure? Вы использовали пакетную обработку?

4. Ценю обратную связь. Однако, уверены ли вы, что я использую узел-красный?