Создайте сквозную лабораторию конвейера обработки данных с помощью фабрики данных Azure и azure databricks.
Предварительные требования
- Учетная запись Azure
- Фабрика данных Azure
- Azure databricks
- Azure Storage ADLS gen2 — для хранения всего файла паркета — озеро данных
- Azure Keyvault для хранения секретов
Архитектура сквозного конвейера
Шаги
- Для ноутбуков я использую существующие ноутбуки с веб-сайта Microsoft doc.
- бизнес-логика здесь не имеет реальной ценности для бизнеса
- каждая задача не связана друг с другом, это показать поток
- используемые данные являются общедоступными наборами данных
Компоненты
- Поток данных для демонстрации Хранилище данных — модель фактов/измерений
- Записная книжка — PassingParameters — для демонстрации того, как передавать параметры пайплайна в записные книжки.
- Записная книжка — DataEngineering — для демонстрации инжиниринга данных с использованием spark.
- Блокнот — машинное обучение MLLib — пример машинного обучения с использованием библиотеки spark ML
- Блокнот — Tensorflow-Keras — демонстрация машинного обучения с использованием keras с бэкендом tensorflow
- Блокнот — Tensorflow-Distributed — демонстрация tensorflow с использованием horovids для распределения вычислений.
Поток данных
- Создадим новый поток данных
- https://github.com/balakreshnan/Samples2021/blob/main/ADF/adfmultijoin.md
- Перейдите по ссылке выше, чтобы создать поток данных с несколькими соединениями.
- Имитирует запрос HiveQL
Блокноты — Azure Databricks
Блокнот — PassingParameters
- Войдите в Azure Databricks
- Создайте кластер с конфигурацией по умолчанию
- создайте папку с именем adftutorial
- Создайте блокнот Python с именем mynotebook
- в первой ячейке напишите приведенный ниже код
dbutils.widgets.text("input", "","")
y = dbutils.widgets.get("input")
print ("Param -\'input':")
print (y)
Ноутбук — DataEngineering
- Создайте папку под названием Demo
- Импортируйте образец блокнота scala из
- https://docs.microsoft.com/en-us/azure/databricks/_static/notebooks/delta/quickstart-scala.html
- Нажмите «Импортировать блокнот» и скопируйте URL-адрес.
- Перейдите в Azure databricks и перейдите в демо-папку.
- Нажмите импорт и вставьте URL
- https://docs.microsoft.com/en-us/azure/databricks/_static/notebooks/delta/quickstart-scala.html
Блокнот — Искра машинного обучения — MLLib
- Перейти к папке под названием Demo
- Импортируйте образец блокнота scala из
- https://docs.microsoft.com/en-us/azure/databricks/_static/notebooks/getting-started/get-started-with-mllib-dbr7.html
- Нажмите «Импортировать блокнот» и скопируйте URL-адрес.
- Перейдите в Azure databricks и перейдите в демо-папку.
- Нажмите импорт и вставьте URL
- https://docs.microsoft.com/en-us/azure/databricks/_static/notebooks/getting-started/get-started-with-mllib-dbr7.html
Блокнот — Tensorflow-keras
- Демонстрация перехода к папке
- Создайте новый блокнот в демо-папке
- Назовите блокнот как: tensorflow-keras
- выберите python в качестве языка выбора
- Код ниже
- каждый блок кода в новой ячейке
import tensorflow as tf from tensorflow.keras.layers import Dense from tensorflow.keras.models import Sequential import mlflow import mlflow.keras import mlflow.tensorflow from sklearn.datasets import fetch_california_housing from sklearn.model_selection import train_test_split cal_housing = fetch_california_housing() # Split 80/20 train-test X_train, X_test, y_train, y_test = train_test_split(cal_housing.data, cal_housing.target, test_size=0.2)
from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test)
- Определить модель
def create_model():
model = Sequential()
model.add(Dense(20, input_dim=8, activation="relu"))
model.add(Dense(20, activation="relu"))
model.add(Dense(1, activation="linear"))
return model
- Создайте модель
model = create_model()
model.compile(loss="mse",
optimizer="Adam",
metrics=["mse"])
- Проведите обучение
from tensorflow.keras.callbacks import ModelCheckpoint, EarlyStopping
# In the following lines, replace <username> with your username.
experiment_log_dir = "/dbfs/<username>/tb"
checkpoint_path = "/dbfs/<username>/keras_checkpoint_weights.ckpt"
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=experiment_log_dir)
model_checkpoint = ModelCheckpoint(filepath=checkpoint_path, verbose=1, save_best_only=True)
early_stopping = EarlyStopping(monitor="loss", mode="min", patience=3)
history = model.fit(X_train, y_train, validation_split=.2, epochs=35, callbacks=[tensorboard_callback, model_checkpoint, early_stopping])
- Предсказать модель для оценки
model.evaluate(X_test, y_test)
Ноутбук — Распространяемый Tensorflow
- Перейти к папке под названием Demo
- Импортируйте образец блокнота scala из
- https://docs.microsoft.com/en-us/azure/databricks/_static/notebooks/deep-learning/spark-tensorflow-distributor.html
- Нажмите «Импортировать блокнот» и скопируйте URL-адрес.
- Перейдите в Azure databricks и перейдите в демо-папку.
- Нажмите импорт и вставьте URL
- https://docs.microsoft.com/en-us/azure/databricks/_static/notebooks/deep-learning/spark-tensorflow-distributor.html
Фабрика данных Azure
- Войдите в пользовательский интерфейс Azure Datafactory Authour.
- Создайте поток данных и выберите мультисоединение, которое вы создали выше.
- Теперь разверните блоки данных и перетащите Блокнот.
- назовите его «PassingParameters»
- Создание подключения к блокам данных Azure.
- Я использую управляемое удостоверение для подключения к Azure Databricks.
- Разрешение для управляемого удостоверения ADF должно быть предоставлено в Azure databricks.
- нужен доступ участника
- Перейдите к adftutorial\mynotebook
- Создайте базовый параметр
- Имя — это «имя» и тип значения @pipeline().parameters.name
- Теперь снова перетащите блокнот
- Название «Инженерия данных»
- подключаться к одним и тем же блокам данных
- Перейти к быстрому запуску демо-версии / Databricks Delta (Scala)
- Теперь снова перетащите блокнот
- Имя — «Искра машинного обучения — MLLib».
- подключаться к одним и тем же блокам данных
- Переход к демонстрации/начало работы с MLlib
- Теперь снова перетащите блокнот
- Название «TensorFlow-Keras»
- подключаться к одним и тем же блокам данных
- Переход к Demo/tensorflow-keras
- Теперь снова перетащите блокнот
- Имя «TensorFlow-Distributed»
- подключаться к одним и тем же блокам данных
- Перейдите к демо/spark-tensorflow-distributor
- Подключите все вышеперечисленное, как показано ниже
- Сохраните конвейер
- Назовите конвейер как «E2EADB».
- Нажмите Опубликовать
- дождитесь завершения публикации
- Затем нажмите Добавить триггер -> Запустить сейчас
- Перейти к монитору
- Дождитесь завершения работы
- После завершения нажмите на запуск и просмотрите подробности
- Нажмите детали и проверьте и посмотрите
- Для записной книжки Azure databricks должен отображаться URL-адрес запуска записной книжки.
- Щелкните и просмотрите вывод записной книжки.
Сделанный
Первоначально опубликовано на https://github.com.