Создайте сквозную лабораторию конвейера обработки данных с помощью фабрики данных 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 для распределения вычислений.

Поток данных

Блокноты — Azure Databricks

Блокнот — PassingParameters

  • Войдите в Azure Databricks
  • Создайте кластер с конфигурацией по умолчанию
  • создайте папку с именем adftutorial
  • Создайте блокнот Python с именем mynotebook
  • в первой ячейке напишите приведенный ниже код
dbutils.widgets.text("input", "","")
y = dbutils.widgets.get("input")
print ("Param -\'input':")
print (y)

Ноутбук — DataEngineering

Блокнот — Искра машинного обучения — MLLib

Блокнот — 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

Фабрика данных 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.