Я пытаюсь загрузить данные (табличные данные в таблицах, в схеме с именем «x» из искрового пула в Azure Synapse. Кажется, я не могу найти, как это сделать. До сих пор я только связывал синапс и мой пул в студию ML.Как я могу это сделать?
Содержимое базы данных Lake хранится в виде файлов Parquet и предоставляется через конечную точку Serverless SQL как Внешние таблицы, поэтому технически вы можете просто запросить их через конечную точку. Это верно для любого инструмента или службы, которые могут подключаться к SQL, например Power BI, SSMS, Машинное обучение Azure и т. д.
ВНИМАНИЕ, ЗДЕСЬ ДРАКОНЫ: из-за способа, которым бессерверный движок выделяет память для текстовых запросов, использование этого подхода может привести к значительным проблемам с производительностью, вплоть до прерывания службы. Исходя из личного опыта, этот подход НЕ рекомендуется. Я рекомендую вам ограничить использование базы данных Lake для рабочих нагрузок Spark или очень ограниченное исследование пула SQL. К счастью, есть несколько способов обойти эти проблемы.
Подход 1: Чтение непосредственно из хранилища вашей базы данных Lake. Это будет в корневом контейнере вашей рабочей области (объявленном во время создания) по следующей структуре пути:
Synapse/workspaces/{workspacename}/warehouse/{databasename}.db/{tablename}/
Это просто файлы Parquet, поэтому нет никаких специальных правил для прямого доступа к ним.
Подход 2. Вы также можете создавать представления по базе данных Lake (внешняя таблица) в бессерверной базе данных и использовать предложение WITH для явного назначения схем правильного размера. Точно так же вы можете полностью игнорировать внешнюю таблицу и использовать OPENROWSET для того же хранилища, о котором говорилось выше. Я рекомендую этот подход, если вам нужно получить доступ к вашей базе данных Lake через конечную точку SQL.