Прочитать на английском

Поделиться через


Схема LIVE (устаревшая версия)

В этой статье представлен обзор устаревшего синтаксиса и поведения для виртуальной схемы LIVE.

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

Поддержка устаревшей виртуальной схемы LIVE и устаревшего режима публикации будет удалена в будущей версии Azure Databricks.

Примечание

Устаревшие конвейеры режима публикации указываются в поле Сводка интерфейса настроек конвейера DLT. Кроме того, можно подтвердить, что конвейер использует устаревший режим публикации, если поле target задано в спецификации JSON для конвейера.

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

Что такое виртуальная схема в реальном времени?

Примечание

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

Схема LIVE — это концепция программирования в DLT, которая определяет виртуальную границу для всех наборов данных, созданных или обновленных в конвейере. По проектированию схема LIVE не привязана непосредственно к наборам данных в опубликованной схеме. Вместо этого, схема LIVE позволяет планировать логику в конвейере и выполнять её, даже если пользователь не хочет публиковать наборы данных в эту схему.

В устаревших конвейерах режима публикации можно использовать ключевое слово LIVE для ссылки на другие наборы данных в текущем конвейере для операций чтения, например SELECT * FROM LIVE.bronze_table. В режиме публикации по умолчанию для новых конвейеров DLT этот синтаксис автоматически игнорируется, что означает, что неквалифицированные идентификаторы используют текущую схему. См. Установка целевого каталога исхемы.

устаревший режим публикации для конвейеров

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

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

Вариант хранилища Расположение хранилища или каталог Целевая схема Поведение
Хранилище метаданных Hive Не указано Не указано Метаданные и данные набора данных хранятся в корневом каталоге DBFS. Объекты базы данных не регистрируются в хранилище метаданных Hive.
Хранилище метаданных Hive URI или путь файла к хранилищу облачных объектов. Ничего не указано Метаданные и данные набора данных хранятся в указанном расположении хранилища. Объекты базы данных не регистрируются в хранилище метаданных Hive.
Хранилище метаданных Hive Не указано Существующая или новая схема в хранилище метаданных Hive. Метаданные и данные набора данных хранятся в корневом каталоге DBFS. Все материализованные представления и таблицы потоковой передачи в конвейере публикуются в указанной схеме в хранилище метаданных Hive.
Хранилище метаданных Hive URI или путь к файлу для хранилища облачных объектов. Существующая или новая схема в хранилище метаданных Hive. Метаданные и данные набора данных хранятся в указанном расположении хранилища. Все материализованные представления и потоковые таблицы в конвейере публикуются в указанной схеме в хранилище метаданных "Hive".
Каталог Unity Существующий каталог каталога Unity. Ничего не указано Метаданные и данные набора данных хранятся в расположении хранилища по умолчанию, связанном с целевым каталогом. Объекты базы данных не регистрируются в каталоге Unity.
Каталог Unity Существующий каталог Unity. Существующая или новая схема в каталоге Unity. Метаданные и данные набора данных хранятся в расположении хранилища по умолчанию, связанном с целевой схемой или каталогом. Все материализованные представления и таблицы потоковой передачи в конвейере публикуются в указанной схеме в каталоге Unity.

Обновление исходного кода из схемы LIVE

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

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

Важно!

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

CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM raw_data

В устаревшем режиме публикации неквалифицированное чтение из таблицы raw_data использует каталог и схему рабочей области по умолчанию, например, main.default.raw_data. В новом режиме конвейера по умолчанию каталог и схема, используемые по умолчанию, настраиваются в конфигурации конвейера. Чтобы убедиться, что этот код продолжает работать должным образом, обновите ссылку, чтобы использовать полный идентификатор таблицы, как показано в следующем примере:

CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM main.default.raw_data

Работа с журналом событий для конвейеров устаревшего режима публикации каталога Unity

Важно!

event_log TVF доступен для устаревших конвейеров режима публикации, публикующих таблицы в каталоге Unity. Поведение по умолчанию для новых конвейеров публикует журнал событий в целевом каталоге и схеме, настроенной для конвейера. См. запрос журнала событий.

Таблицы, настроенные с помощью хранилища метаданных Hive, также имеют различные поддержку и поведение журнала событий. См. статью Работа с журналом событий для конвейеров хранилища метаданных Hive.

Если конвейер публикует таблицы в каталоге Unity с устаревшим режимом публикации, необходимо использовать event_logтабличную функцию (TVF), чтобы получить журнал событий для конвейера. Журнал событий для конвейера извлекается путем передачи идентификатора конвейера или имени таблицы в TVF. Например, чтобы получить записи журнала событий для конвейера с идентификатором 04c78631-3dd7-4856-b2a6-7d84e9b2638b:

SELECT * FROM event_log("04c78631-3dd7-4856-b2a6-7d84e9b2638b")

Чтобы получить записи журнала событий для конвейера, который создал или владеет таблицей my_catalog.my_schema.table1:

SELECT * FROM event_log(TABLE(my_catalog.my_schema.table1))

Чтобы вызвать TVF, необходимо использовать общий кластер или хранилище SQL. Например, можно использовать записную книжку, подключенную к общему кластеру, или использовать редактор SQL , подключенный к хранилищу SQL.

Чтобы упростить запросы событий для конвейера, владелец конвейера может создать представление по event_log TVF. В следующем примере создается представление журнала событий для конвейера. Это представление используется в примерах запросов журнала событий, включенных в эту статью.

Примечание

  • event_log TVF можно вызывать только владельцем трубопровода.
  • Нельзя использовать функцию event_log табличного значения в конвейере или запросе для доступа к журналам событий нескольких конвейеров.
  • Представление, созданное над табличной функцией event_log, невозможно предоставить другим пользователям.
CREATE VIEW event_log_raw AS SELECT * FROM event_log("<pipeline-ID>");

Замените <pipeline-ID> уникальным идентификатором конвейера DLT. Идентификатор можно найти на панели сведений о конвейере в пользовательском интерфейсе DLT.

Каждый экземпляр выполнения конвейера называется обновление. Часто требуется извлечь сведения для последнего обновления. Выполните следующий запрос, чтобы найти идентификатор последнего обновления и сохранить его в latest_update_id временном представлении. Это представление используется в примерах запросов журнала событий, включенных в эту статью:

CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;