Что такое тестирование больших данных?
Тестирование BigData определяется как тестирование приложений Bigdata. Большие данные — это набор больших наборов данных, которые не могут быть обработаны с использованием традиционных вычислительных технологий. Тестирование этих наборов данных включает в себя различные инструменты, методы и структуры для обработки. Большие данные относятся к созданию, хранению, поиску и анализу данных, которые отличаются по объему, разнообразию и скорости. Вы можете узнать больше о Big Data, Hadoop и MapReduce здесь
В этом уроке вы узнаете
- Стратегия тестирования больших данных
- Как протестировать приложения Hadoop
- Тестирование архитектуры
- Тестирование производительности
- Подход к тестированию производительности
- Параметры для тестирования производительности
- Требования к среде тестирования
- Тестирование больших данных Vs. Традиционное тестирование базы данных
- Инструменты, используемые в сценариях больших данных
- Проблемы в тестировании больших данных
Стратегия тестирования больших данных
Тестирование приложения Big Data — это скорее проверка его обработки данных, чем тестирование отдельных функций программного продукта. Когда дело доходит до тестирования больших данных, ключом является производительность и функциональное тестирование .
В тестировании больших данных инженеры QA проверяют успешную обработку терабайтов данных с использованием товарного кластера и других вспомогательных компонентов. Это требует высокого уровня навыков тестирования, так как обработка очень быстрая. Обработка может быть трех типов
Наряду с этим качество данных также является важным фактором в тестировании Hadoop. Перед тестированием приложения необходимо проверить качество данных, и это следует рассматривать как часть тестирования базы данных. Он включает проверку различных характеристик, таких как соответствие, точность, дублирование, последовательность, достоверность, полнота данных и т. Д.
Как протестировать приложения Hadoop
На следующем рисунке представлен общий обзор этапов тестирования приложений с большими данными.
Тестирование больших данных можно разделить на три этапа.
Шаг 1. Проверка данных
Первый этап тестирования больших данных, также называемый этапом, предшествующим Hadoop, включает проверку процесса.
- Данные из различных источников, таких как RDBMS, веб-блоги, социальные сети и т. Д., Должны быть проверены, чтобы убедиться, что в систему введены правильные данные.
- Сравнивая исходные данные с данными, вставленными в систему Hadoop, чтобы убедиться, что они совпадают
- Убедитесь, что нужные данные извлечены и загружены в правильное расположение HDFS.
Такие инструменты, как Talend , Datameer , могут использоваться для проверки постановки данных
Шаг 2: Проверка MapReduce
Второй шаг — проверка «MapReduce». На этом этапе тестер проверяет проверку бизнес-логики на каждом узле, а затем проверяет их после запуска на нескольких узлах, гарантируя, что
- Map Reduce процесс работает правильно
- Правила агрегирования или разделения данных применяются к данным.
- Пары ключ-значение генерируются
- Проверка данных после процесса Map-Reduce
Шаг 3: Этап проверки выходных данных
Заключительным или третьим этапом тестирования больших данных является процесс проверки выходных данных. Файлы выходных данных созданы и готовы к перемещению в EDW (Enterprise Data Warehouse) или любую другую систему в соответствии с требованиями.
Мероприятия на третьем этапе включают
- Для проверки правильно применяются правила преобразования
- Для проверки целостности данных и успешной загрузки данных в целевую систему
- Чтобы убедиться в отсутствии повреждения данных, сравните данные назначения с данными файловой системы HDFS.
Тестирование архитектуры
Hadoop обрабатывает очень большие объемы данных и требует значительных ресурсов. Следовательно, архитектурное тестирование имеет решающее значение для обеспечения успеха вашего проекта больших данных. Плохо или неправильно разработанная система может привести к снижению производительности, и система может не соответствовать требованиям. По крайней мере, сервисы тестирования производительности и отработки отказа должны выполняться в среде Hadoop.
Тестирование производительности включает в себя тестирование времени выполнения задания, использования памяти, пропускной способности данных и аналогичных системных показателей. В то время как целью службы тестирования отказоустойчивости является проверка бесперебойной обработки данных в случае отказа узлов данных.
Тестирование производительности
Тестирование производительности для больших данных включает в себя два основных действия
-
Прием данных и их продолжение : На этом этапе тестер проверяет, как быстрая система может потреблять данные из различных источников данных. Тестирование включает в себя определение другого сообщения, которое очередь может обработать в заданный период времени. Также указывается, насколько быстро данные могут быть вставлены в базовое хранилище данных, например, скорость вставки в базу данных Mongo и Cassandra.
-
Обработка данных : включает в себя проверку скорости, с которой выполняются запросы или карта сокращают задания. Это также включает в себя тестирование обработки данных изолированно, когда основное хранилище данных заполняется в наборах данных. Например, запуск заданий Map Reduce на базовом HDFS
- Производительность подкомпонентов. Эти системы состоят из нескольких компонентов, поэтому важно протестировать каждый из этих компонентов в отдельности. Например, как быстро сообщение индексируется и используется, задания MapReduce, производительность запросов, поиск и т. Д.
Подход к тестированию производительности
Тестирование производительности для приложений с большими данными включает в себя тестирование огромных объемов структурированных и неструктурированных данных и требует особого подхода к тестированию для тестирования таких массивных данных.
Тестирование производительности выполняется в следующем порядке
- Процесс начинается с настройки кластера больших данных, который должен быть протестирован на производительность.
- Определить и спроектировать соответствующие рабочие нагрузки
- Подготовка отдельных клиентов (создаются пользовательские сценарии)
- Выполните тест и проанализируйте результат (если цели не достигнуты, настройте компонент и повторите его)
- Оптимальная конфигурация
Параметры для тестирования производительности
Различные параметры для проверки производительности
- Хранение данных: как данные хранятся в разных узлах
- Журналы фиксации: насколько велик размер журнала фиксации
- Параллельность: сколько потоков может выполнить операцию записи и чтения
- Кэширование. Настройте параметры кэширования «кэш строк» и «кэш ключей».
- Тайм-ауты: значения времени ожидания соединения, времени ожидания запроса и т. Д.
- Параметры JVM: размер кучи, алгоритмы сбора GC и т. Д.
- Карта снижает производительность: сортирует, объединяет и т. Д.
- Очередь сообщений: скорость, размер и т. Д.
Требования к среде тестирования
Среда тестирования должна зависеть от типа приложения, которое вы тестируете. Для тестирования больших данных тестовая среда должна включать
- На нем должно быть достаточно места для хранения и обработки большого количества данных.
- Он должен иметь кластер с распределенными узлами и данными
- Он должен иметь минимальное использование процессора и памяти для поддержания высокой производительности
Тестирование больших данных Vs. Традиционное тестирование базы данных
свойства |
Традиционное тестирование базы данных |
Тестирование больших данных |
Данные |
|
|
|
|
|
|
|
|
инфраструктура |
|
|
Инструменты проверки |
Tester использует макросы на основе Excel или средства автоматизации на основе пользовательского интерфейса |
Никаких определенных инструментов, диапазон от инструментов программирования, таких как MapReduce, до HIVEQL огромен. |
Инструменты тестирования могут использоваться с базовыми эксплуатационными знаниями и меньшим количеством обучения. |
Требуется определенный набор навыков и обучения для работы с инструментом тестирования. Кроме того, инструменты находятся на начальной стадии, и со временем могут появиться новые функции. |
Инструменты, используемые в сценариях больших данных
Большой кластер данных |
Инструменты больших данных |
NoSQL: |
|
Уменьшение карты: |
|
Место хранения: |
|
Серверы: |
|
обработка |
|
Проблемы в тестировании больших данных
-
автоматизация
Автоматизированное тестирование больших данных требует специалиста. Кроме того, автоматизированные инструменты не оснащены для обработки неожиданных проблем, возникающих во время тестирования
-
Виртуализация
Это один из неотъемлемых этапов тестирования. Задержка виртуальной машины создает проблемы синхронизации при тестировании больших данных в реальном времени. Также управление изображениями в Больших данных является проблемой.
-
Большой набор данных
- Нужно проверить больше данных и нужно сделать это быстрее
- Нужно автоматизировать тестирование
- Необходимо уметь тестировать на разных платформах
Проблемы тестирования производительности
- Разнообразный набор технологий : каждый подкомпонент относится к разным технологиям и требует отдельного тестирования
- Недоступность определенных инструментов : ни один инструмент не может выполнить сквозное тестирование. Например, NoSQL может не подходить для очередей сообщений
- Тестовые сценарии: высокая степень сценариев необходима для разработки тестовых сценариев и тестовых случаев
- Тестовая среда : требуется большая тестовая среда из-за большого размера данных
- Решение для мониторинга : существуют ограниченные решения, которые могут контролировать всю среду
- Диагностическое решение : для разработки узких мест производительности необходимо разработать специальное решение
Резюме
- По мере того, как разработка данных и аналитика данных выходят на новый уровень, тестирование больших данных неизбежно.
- Обработка больших данных может быть пакетной, в реальном времени или интерактивной
-
3 этапа тестирования приложений Big Data:
- Проверка постановки данных
- Проверка MapReduce
- Этап проверки выходных данных
- Архитектурное тестирование является важной фазой тестирования больших данных, так как плохо спроектированная система может привести к беспрецедентным ошибкам и снижению производительности.
-
Тестирование производительности для больших данных включает проверку
- Пропускная способность
- Обработка данных
- Подкомпонент производительности
-
Тестирование больших данных сильно отличается от традиционного тестирования данных с точки зрения данных, инфраструктуры и средств проверки
-
Задачи тестирования больших данных включают виртуализацию, автоматизацию тестирования и работу с большим набором данных. Тестирование производительности приложений Big Data также является проблемой.