Создание lakehouse для Direct Lake
В этой статье описывается, как создать lakehouse, создать таблицу Delta в lakehouse, а затем создать базовую семантику для lakehouse в рабочей области Microsoft Fabric.
Прежде чем приступить к созданию lakehouse для Direct Lake, обязательно ознакомьтесь с общими сведениями о Direct Lake.
Создание озера данных
В рабочей области Microsoft Fabric выберите новые>параметры, а затем в Инжиниринг данных выберите плитку Lakehouse.
В диалоговом окне "Создать lakehouse" введите имя и нажмите кнопку "Создать". Имя может содержать только буквенно-цифровые символы и символы подчеркивания.
Убедитесь, что новый lakehouse создан и открыт успешно.
Создание таблицы Delta в lakehouse
После создания нового озера необходимо создать по крайней мере одну таблицу Delta, чтобы Direct Lake могли получить доступ к некоторым данным. Direct Lake может считывать файлы в формате parquet, но для оптимальной производительности лучше сжать данные с помощью метода сжатия VORDER. VORDER сжимает данные с помощью собственного алгоритма сжатия подсистемы Power BI. Таким образом подсистема может загружать данные в память как можно быстрее.
Существует несколько вариантов загрузки данных в lakehouse, включая конвейеры данных и скрипты. Следующие действия используют PySpark для добавления таблицы Delta в lakehouse на основе открытого набора данных Azure:
В созданном lakehouse выберите "Открыть записную книжку" и выберите "Создать записную книжку".
Скопируйте и вставьте следующий фрагмент кода в первую ячейку кода, чтобы разрешить SPARK получить доступ к открытой модели, а затем нажмите клавиши SHIFT+ВВОД , чтобы запустить код.
# Azure storage access info blob_account_name = "azureopendatastorage" blob_container_name = "holidaydatacontainer" blob_relative_path = "Processed" blob_sas_token = r"" # Allow SPARK to read from Blob remotely wasbs_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path) spark.conf.set( 'fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name), blob_sas_token) print('Remote blob path: ' + wasbs_path)
Убедитесь, что код успешно выводит путь к удаленному BLOB-объекту.
Скопируйте и вставьте следующий код в следующую ячейку, а затем нажмите клавиши SHIFT+ВВОД.
# Read Parquet file into a DataFrame. df = spark.read.parquet(wasbs_path) print(df.printSchema())
Убедитесь, что код успешно выводит схему DataFrame.
Скопируйте и вставьте следующие строки в следующую ячейку, а затем нажмите клавиши SHIFT+ВВОД. Первая инструкция включает метод сжатия VORDER, а следующая инструкция сохраняет кадр данных в виде таблицы Delta в lakehouse.
# Save as delta table spark.conf.set("spark.sql.parquet.vorder.enabled", "true") df.write.format("delta").saveAsTable("holidays")
Убедитесь, что все задания SPARK успешно завершены. Разверните список заданий SPARK, чтобы просмотреть дополнительные сведения.
Чтобы убедиться, что таблица создана успешно, в левой верхней области рядом с таблицами выберите многоточие (...), а затем нажмите кнопку "Обновить", а затем разверните узел "Таблицы".
Используя либо тот же метод, что и выше, либо другие поддерживаемые методы, добавьте дополнительные таблицы Delta для данных, которые необходимо проанализировать.
Создание базовой модели Direct Lake для озера
В lakehouse выберите новую семантику модели, а затем в диалоговом окне выберите таблицы, которые нужно включить.
Выберите "Подтвердить" , чтобы создать модель Direct Lake. Модель автоматически сохраняется в рабочей области на основе имени озера, а затем открывает модель.
Выберите "Открыть модель данных", чтобы открыть интерфейс веб-моделирования, где можно добавлять связи таблиц и меры DAX.
После завершения добавления связей и мер DAX можно создавать отчеты, создавать составную модель и запрашивать модель через конечные точки XMLA точно так же, как и любую другую модель.