2016-05-12 6 views
2

Я использую источники данных с плоскими файлами с инкрементной нагрузкой и вижу различную производительность в зависимости от того, как я загружаю. У меня есть 3 набора данных {d1, d2, d3}, где d1 и d2 имеют одинаковый размер, а d3 - в 3 раза больше. Я делаю следующий тест на компьютере с 16 Гб памяти:icCube incremental vs single load performance

  1. нагрузки d1 - время: 1m07s
  2. приращением нагрузки d2 - время: 2m53s
  3. пошагово загрузить d3 - выбегает из памяти

С другой стороны, если я выполняю одиночную нагрузку d1 + d2 + d3, общее время составляет 5m29s, и проблем с памятью не возникает.

Это просто вопрос памяти, когда вы делаете инкрементную или единую нагрузку или мне лучше управлять производительностью?

ответ

2

Инкрементальная нагрузка была реализована для поддержки реального времени и имеет ту же логику, что и обычная нагрузка.

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

Инкрементная нагрузка подходит для небольших объемов данных в реальном времени, а не для вашего сценария.

Медленное время не из-за того, что у вас заканчивается память (много GC) ?

Надеюсь, что это поможет.

PS: Если вам нужна дополнительная поддержка, обратитесь в службу поддержки напрямую.