Легкость структурированных данных и эффективность Spark

Шилпа стала экспертом в Spark и увлекается анализом больших данных. Все шло хорошо, пока ее работодатель не захотел узнать, какие идеи они могут получить, объединив свои корпоративные данные из базы данных Oracle с большими данными.

База данных Oracle - самая продаваемая корпоративная база данных. Большинство корпоративных приложений, таких как приложения ERP и SCM, работают в базе данных Oracle. Как и Шилпа, большинство специалистов по обработке данных сталкиваются с ситуациями, когда им приходится связывать данные, поступающие из корпоративных баз данных, таких как Oracle, с данными, поступающими из источника больших данных, такого как Hadoop.

Есть два подхода к решению таких требований:

  1. Перенесите корпоративные данные в систему хранения больших данных, такую ​​как Hadoop HDFS, а затем получите к ней доступ через Spark SQL.

Такой подход имеет следующие недостатки:

  • Дублирование данных
  • Корпоративные данные необходимо перенести в Hadoop HDFS. Для этого требуется решение для интеграции данных, и в основном это будет пакетная операция, что приведет к проблемам с задержкой данных.

2. Храните оперативные корпоративные данные в базе данных Oracle, а большие данные - в Hadoop HDFS и получайте доступ к обоим через Spark SQL.

  • Только необходимые корпоративные данные доступны через Spark SQL.
  • При необходимости корпоративные данные можно сохранить в Hadoop HDFS через Spark RDD.

В этой статье я подробно остановлюсь на втором подходе. Давайте сначала рассмотрим основы.

Искра

Если вы хотите узнать о Spark и получить пошаговые инструкции по его загрузке и установке вместе с Python, я настоятельно рекомендую мою статью ниже.



База данных Oracle

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



JDBC

Прежде чем мы углубимся в интеграцию баз данных Spark и Oracle, нужно знать о Java Database Connection (JDBC).

Приложение Java может подключаться к базе данных Oracle через JDBC, который представляет собой API на основе Java. Поскольку Spark работает на виртуальной машине Java (JVM), он может быть подключен к базе данных Oracle через JDBC.

Вы можете скачать последнюю версию jar-файла JDBC по ссылке ниже



У вас должен получиться файл ojdbc7.jar. Сохраните этот файл в папке… / spark / jars, где хранятся все остальные файлы классов системы Spark.

Подключение Spark к базе данных Oracle

Теперь, когда вы уже установили jar-файл JDBC, в который установлен Spark, и знаете детали доступа (хост, порт, sid, логин, пароль) к базе данных Oracle, приступим к действию.

Я установил Oracle Database, а также Spark (в локальном режиме) на экземпляр AWS EC2, как описано в статье выше.

  1. Я могу получить доступ к моей базе данных оракула sanrusha. База данных запущена и работает.

2. Слушатель базы данных также запущен и работает.

3. Пользователь базы данных - sparkuser1. У этого пользователя есть доступ к одной тестовой таблице, в которой есть только столбец A, но нет данных.

На следующем шаге мы подключимся к этой базе данных и таблице через Spark.

4а. Войдите в систему Spark и запустите Spark через Spark-shell или pyspark.

4b. Команда ниже создает искровой фрейм данных df с деталями теста таблицы базы данных Oracle. Напишите эту команду в командной строке Scala.

val df= spark.read.format(“jdbc”).option(“url”,”jdbc:oracle:thin:sparkuser1/oracle@<oracledbhost>:<oracle db access port default is 1521>/<oracledbsid>”).option(“dbtable”,”test”).option(“user”,”sparkuser1").option(“password”,”oracle”).option(“driver”,”oracle.jdbc.driver.OracleDriver”).load()

4c. df.schema покажет детали таблицы. В данном случае это простая тестовая таблица с одним столбцом A.

4г. Откройте браузер, введите адрес ниже

Http: //‹ общедоступный IP-адрес машины, на которой запущен Spark ›: 4040

Щелкните вкладку SQL. Вы должны увидеть подробную информацию, например, в какое время был отправлен запрос на подключение, сколько времени потребовалось для подключения и действий по извлечению данных, а также сведения о JDBC.

Spark также можно запустить через API-интерфейс Spark session.builder, доступный в Python. Откройте блокнот Jypyter и введите указанные ниже данные, чтобы запустить сеанс приложения Spark и подключить его к базе данных Oracle.

Вот снимок моей записной книжки Jupyter.

Заключение

Это была небольшая статья, в которой объяснялись варианты использования Spark с базой данных Oracle. Вы можете расширить эти знания для подключения Spark к MySQL и базам данных.

Жду ваших отзывов.

Ссылка:

Apache Spark для инженеров по обработке данных