Как эффективно выполнять преобразования больших наборов данных в Azure? - PullRequest
0 голосов
/ 01 марта 2019

Цель / проблема

, так как в течение 3 недель мы пытаемся найти наилучшее из возможных высокопроизводительных решений в Azure для загрузки 10 миллионов записей (может быть даже больше!) В стадии подготовкиобласти, выполняйте различные преобразования на основе поэтапных записей и, наконец, физически сохраняйте обновления в магазине.

Чтобы достичь этого, мы провели много исследований и попробовали разные подходы, чтобы получить результаты в приличном количестве.время (максимум 1 минута), но мы полностью застряли!Каждая секунда, которую мы можем сэкономить, является огромным преимуществом для нашего клиента!

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

Пример вводасхема

+------+--------+----------+
|  Id  |  Year  |  Amount  |
+------+--------+----------+
|  1   |  1900  |     1000 |
|  2   |  1900  |     2000 |
|  3   |  1901  |     4000 |
|  4   |  1902  |     8000 |
|  ... |  ...   |      ... |
|  1M  |  9999  |     1000 |
+------+--------+----------+

Преобразование

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

A step может быть одним из следующих:

  • Удвоение Amount
  • Субъект 1k от Amount
  • Крышка Amount максимум до 5k
  • Крышка Amountдо минимума ноль
  • Ограничьте сумму Year до максимума 100k

В Azure существует так много возможных решений и возможностей, что действительно трудноЯ знаю, какой путь лучше выбрать, поэтому нам нужна ваша помощь.

Какие хранилища данных мы уже рассмотрели

  • База данных SQL Azure
  • Azure CosmosDB

Какие сервисы мы уже рассмотрели

  • Фабрика данных Azure
  • Функции Azure с самореализованной архитектурой Fanout / Fanin (с точки зрения очередей ServiceBus и Redis Cache)
  • Прочные функции
  • Azure Databricks

Вопрос

Есть ли кто-нибудь, кто мог решить подобную проблему и мог бы дать нам несколько советов или рекомендаций по архитектуре?Мы были бы очень благодарны.

Edit # 1: добавлено описание процесса преобразования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...