Схема 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
также направляет чтение в каталог и схему, указанную в конфигурации конвейера.
Важно!
Устаревший код, выполняющий операции чтения, которые используют каталог и схему по умолчанию рабочей области, нуждаются в обновлении. Рассмотрим следующее определение материализованного представления:
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
Важно!
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;