2016-01-23 3 views
3

В одном из моих проектов я получил детали заказа клиента в середине каждого месяца, что составляет около 14 миллиардов строк файла. Мне нужно загрузить их в мою систему (1 строка за запись) в течение 1 недели, после чего пользователи могут запросить.Вставьте 14 миллиардов записей в хранилище таблиц Azure

Я решил использовать хранилище таблиц для хранения по соображениям цены и эффективности. Но я обнаружил, что производительность табличного хранилища составляет «2000 штук в секунду для каждого раздела» и «20 000 штук в секунду на каждую учетную запись». https://azure.microsoft.com/en-us/documentation/articles/storage-scalability-targets/

Это означает, что если я использовал 1 учетную запись хранилища, мне нужно около 1 месяца, чтобы загрузить их, что неприемлемо.

Есть ли какое-либо решение, которое я могу ускорить для завершения задачи загрузки в течение 1 недели?

+0

Вы можете посмотреть в DynamoDB вместо Azure – Androme

+1

2 вопроса: 1) Насколько велика 1 запись в размере (1 КБ, 2 КБ и т. Д.)? 2) Как пользователи будут запрашивать эти данные? Простой поиск порядка по идентификатору? –

+0

@DoomStone Мое приложение было построено поверх лазурного, поэтому я должен его использовать. –

ответ

2

Простым ответом на это является использование нескольких учетных записей. Если вы разделите данные и разделите их на несколько учетных записей, вы сможете получить такую ​​же производительность, сколько вам нужно. Вам просто нужен еще один слой для последующего агрегирования данных.

Возможно, у вас может быть более медленный процесс, который создает одну большую основную таблицу в фоновом режиме.

Вы, возможно, нашли это уже, но есть отличный article об импорте больших наборов данных в Azure Tables

+0

Да, использование нескольких учетных записей является решением кандидата, но может потребоваться разбить данные одного клиента на несколько учетных записей. Поскольку я использую идентификатор клиента в качестве ключа раздела, и пользователь будет запрашивать на основе идентификатора клиента, это может ухудшить производительность запроса. –