Использование Lakebase с приложениями Databricks

Приложения Databricks позволяют создавать и развертывать интерактивные приложения непосредственно в рабочей области Azure Databricks. Добавление Lakebase в качестве ресурса предоставляет приложению полностью управляемую серверную часть Postgres. Azure Databricks создает субъект-службу для приложения, предоставляет ему соответствующую роль Postgres и внедряет сведения о подключении в качестве переменных среды. Приложение подключается к полностью управляемой базе данных Postgres без управления учетными данными или строками подключения.

Схема архитектуры, показывающая интеграцию с клиентом, Databricks Apps и LKB

В этом руководстве описывается развертывание приложения-шаблона, подключенного к базе данных Lakebase. К концу у вас будет работающая программа с данными, которые можно проверять и запрашивать непосредственно из Lakebase, а также, при желании, зарегистрировать в каталоге Unity вместе с данными Lakehouse.

Необходимые условия

Прежде чем начать, убедитесь, что у вас есть следующее:

  • Доступ к рабочей области Azure Databricks с включенными Lakebase и бессерверными вычислениями. При необходимости обратитесь к администратору рабочей области.
  • Разрешение на создание вычислительных ресурсов и приложений.

Шаг 1. Подготовка экземпляра Lakebase

Проект Lakebase — это управляемый экземпляр Postgres, к которому приложение подключается как к ресурсу. Проекты организованы в ветви, каждая из которых представляет изолированную среду базы данных.

Сведения о создании проекта Lakebase см. в статье "Получение базы данных Postgres". Lakebase создает проект с production ветвью и базой databricks_postgres данных.

Шаг 2. Создание приложения Databricks

Azure Databricks предоставляет три шаблона приложения автомасштабирования, демонстрирующие интеграцию Lakebase с помощью приложения todos: Dash, Flask и Streamlit. Чтобы создать приложение из шаблона, выполните приведенные действия.

  1. В рабочей области Azure Databricks щелкните значок App icon. и выберите в переключателе приложений Databricks Apps.
  2. Нажмите кнопку "+ Создать приложение".
  3. Выберите предпочтительный шаблон на вкладке "База данных ".

Шаблон приложения Flask + LKB Autoscaling

Шаг 3. Настройка ресурса базы данных

Добавление Lakebase в качестве ресурса создает служебный принципал с правильными разрешениями базы данных и вставляет данные подключения в качестве переменных среды в приложение. Это позволяет шаблону автоматически подключаться к базе данных без строк подключения в коде.

На шаге "Настройка" настройте следующие параметры.

  1. Для ресурсов приложения выберите проект Lakebase, ветвь и базу данных. Имена ветвей отображаются в виде идентификаторов. Чтобы сопоставить идентификаторы с именами, перейдите на страницу ветвей проекта.
  2. Для размера вычислений выберите средний. Это управляет вычислениями сервера приложений, которые отделены от вычислительных ресурсов базы данных Lakebase и масштабируется независимо.

Конфигурация ресурсов базы данных, показывающая выбор проекта, ветви и базы данных

Дополнительные сведения см. в разделе "Добавление ресурса Lakebase" в приложение Databricks.

Шаг 4. Проверка авторизации

Каждое приложение Databricks запускается как собственная учетная запись службы, выделенное удостоверение отдельно от любого отдельного пользователя. При подключении Lakebase как ресурса Azure Databricks создает соответствующую роль Postgres для этого субъекта-службы и предоставляет ему полный доступ к базе данных. Настройка роли вручную не требуется.

Проверка авторизации с разрешениями субъекта-службы

Шаг 5. Присвойте приложению имя и установите

Lakebase использует имя приложения для создания имени схемы в формате {app-name}_schema_{service-principal-id} (дефисы, удаленные из идентификатора). Вы не можете изменить имя приложения после создания, но можно переименовать схему позже. Шаблон по умолчанию - lakebase-autoscaling-app.

Нажмите кнопку "Создать приложение" , чтобы создать приложение.

Шаг 6. Развертывание приложения

После создания приложения вычислительные ресурсы запускаются автоматически и приложение развертывается примерно через 2–3 минуты без каких-либо дальнейших действий. Когда статус приложения отображает Запущено, щелкните ссылку рядом, чтобы открыть приложение.

Обзор приложения, показывающий состояние выполнения и активные вычисления

Шаг 7. Проверка интеграции

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

Представление таблиц LKB, показывающее задачи, написанные приложением

Чтобы напрямую запрашивать данные, используйте редактор SQL в проекте Lakebase. Поскольку Lakebase масштабируется до нуля в режиме простоя, первый запрос после длительного перерыва может занять несколько секунд на ответ. Другие параметры подключения см. в разделе "Подключение к базе данных".

Шаг 8. Запрос через каталог Unity (необязательно)

По умолчанию данные Lakebase вашего приложения доступны непосредственно через подключения к PostgreSQL. Регистрация в каталоге Unity делает его запрашиваемым вместе с данными lakehouse с помощью стандартного SQL Databricks. Затем вы можете присоединить таблицы транзакций приложения к таблицам Delta в том же запросе.

Чтобы зарегистрировать, откройте обозреватель каталогов и создайте новый каталог. Выберите Lakebase Postgres в качестве типа каталога, выберите автомасштабирование и выберите тот же проект и ветвь, что и приложение. Полные сведения см. в разделе "Регистрация базы данных в каталоге Unity ".

Обратите внимание, что имена схем в каталоге Unity сохраняют дефисы из имени приложения. Для имен каталога и схемы требуется использование обратных кавычек.

SELECT * FROM `your-catalog-name`.`lakebase-autoscaling-app_schema_aeb6ff9198ff4752af7dfc6d4cf570d0`.todos;

Подробнее