Быстрый старт: Запросы и использование данных OneLake в Microsoft Fabric

В этом быстром старте вы используете три движка Fabric для взаимодействия с одной и той же таблицей Lakehouse. Сначала вы задаёте запросы к таблице, используя SQL analytics endpoint. Затем вы строите отчёт Power BI в режиме Direct Lake поверх той же таблицы. Наконец, вы считываете ту же таблицу из ноутбука Spark. Вместе эти шаги показывают основной шаблон OneLake: одна копия данных, несколько движков.

OneLake хранит табличные данные в открытом формате Delta Parquet поверх Azure Data Lake Storage (ADLS) Gen2. Эта общая основа позволяет разным движкам Fabric работать с одними и теми же данными без необходимости перемещать их или форматировать под каждый опыт. Инструменты и сервисы, поддерживающие ADLS Gen2, такие как Azure Databricks, Azure Synapse Analytics и кастомные приложения, также могут получать те же данные извне Fabric.

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

Запросите таблицу с помощью SQL analytics endpoint

Каждый lakehouse автоматически получает конечную точку аналитики SQL. Конечная точка читает данные напрямую из таблиц Delta в OneLake, так что вы можете запускать T-SQL запросы к вашим данным Lakehouse, не копируя их в отдельное хранилище SQL.

  1. В портале Fabric откройте рабочее пространство, в котором находится ваш дом на озере, и выберите домик на озере.

  2. В правом верхнем углу lakehouse выберите в раскрывающемся списке Анализировать данные с помощью>конечной точки аналитики SQL, чтобы переключиться на конечную точку аналитики SQL этого же элемента.

    Скриншот портала Fabric, показывающий переключение на конечную точку аналитики SQL.

  3. В меню конечной точки аналитики SQL выберите Новый SQL-запрос.

  4. В редакторе запросов выполните следующий запрос по dim_products таблице:

    Этот запрос группируется по категориям и подкатегориям, чтобы показать количество товаров и среднюю цену.

    SELECT
       category,
       subcategory,
       COUNT(*) AS products,
       ROUND(AVG(standard_price), 2) AS avg_price
    FROM (
       SELECT
          product_id,
          category,
          subcategory,
          standard_price,
          ROW_NUMBER() OVER (
             PARTITION BY product_id
             ORDER BY from_date DESC
          ) AS rn
       FROM dbo.dim_products
    ) latest
    WHERE rn = 1
    GROUP BY category, subcategory
    ORDER BY avg_price DESC;
    
  5. Просмотрите результаты в панели вывода запроса.

    Скриншот портала Fabric, показывающий вывод SQL-запроса.

Вы выполнили запрос к таблице, не перемещая и не дублируя её. Конечная точка аналитики SQL читает те же файлы Delta в OneLake, что и Lakehouse.

Постройте отчёт Power BI в режиме Direct Lake

Direct Lake — это режим хранения Power BI, который считывает таблицы Delta из OneLake, поэтому семантическая модель может предоставлять отчёты без импорта или дублирования данных. Direct Lake имеет два режима, в обоих случаях данные считываются из OneLake: Direct Lake on OneLake и Direct Lake on SQL. Они различаются тем, как семантическая модель обнаруживает таблицы и применяет права доступа. Поскольку этот быстрый старт начинается с конечной точки аналитики SQL, поток создаёт семантическую модель Direct Lake on SQL .

В этом разделе вы строите семантическую модель и простой отчёт на одной и той же dim_products таблице.

В представлении отчёта показана средняя цена товара в разрезе category, при этом каждый столбец разбит по subcategory.

  1. В меню конечной точки SQL-аналитики выберите Новую семантическую модель.

    Скриншот портала Fabric, показывающий создание семантической модели на основе SQL аналитики.

  2. Введите название семантической модели, например dim_products_model. Выберите dim_products таблицу, затем выберите « Подтвердить».

  3. В меню семантической модели выберите « Новый отчёт».

    Скриншот портала Fabric, где видно создание отчёта по семантической модели.

  4. В процессе написания отчёта расширьте dim_products таблицу в панели данных .

  5. В панели визуализации выберите таблицу столбцов.

    Скриншот портала Fabric, показывающий выбор столбцовой диаграммы с стеками.

  6. Перетащите category по оси X.

  7. Перетащите standard_price по оси Y, затем установите агрегацию на Среднее.

  8. Перетащите subcategory в Legend , чтобы разделить каждую категорию на подкатегории.

    Скриншот портала Fabric, показывающий результаты этапов построения отчетов.

  9. На ленте выберите «Сохранить файл>» и сохраните отчёт в своё рабочее пространство.

Отчёт читается из той же таблицы Delta в OneLake, которую вы только что запросили в T-SQL. Вы не создали вторую копию данных для формирования отчёта.

Читайте ту же таблицу из блокнота Spark.

Ноутбуки Fabric дают вам третий движок поверх тех же данных. Spark читает dim_products таблицу Delta напрямую из OneLake, не проходя через SQL-аналитику или семантическую модель. Этот шаг показывает, что движок с совершенно другим стеком запросов работает из тех же базовых файлов.

  1. Вернитесь в домик на озере, где находится dim_products.

  2. В меню Lakehouse выберите Анализ данных с помощью>записной книжки>Новая записная книжка. Блокнот открывается с вашим домом на озере, который уже прикреплен как стандартный домик на озере.

  3. В первую кодовую ячейку вставьте следующий код PySpark:

    Этот код использует from_date временное измерение и суммирует количество товаров и среднюю цену по периодам и категориям.

    from pyspark.sql import functions as F
    
    df = spark.read.table("dim_products")
    
    summary = (
       df.groupBy("from_date", "category")
       .agg(
          F.count("*").alias("products"),
          F.round(F.avg("standard_price"), 2).alias("avg_price"),
       )
       .orderBy(F.col("from_date"), F.col("avg_price").desc())
    )
    
    display(summary)
    
  4. Выберите Run cell (или нажмите Shift+Enter), чтобы запустить ячейку. Результаты показывают, как средние цены различаются по категориям в даты вступления в силу.

    Скриншот портала Fabric, показывающий результаты кода из блокнота.

Спарк читает файлы Delta в OneLake напрямую. Данные не копируются в специализированное хранилище Spark, и таблица, которую вы запросили, — это та же, что поддерживает вашу семантическую модель. Теперь у вас есть одна копия данных в OneLake, которую три движка — SQL-аналитика, Power BI Direct Lake и Spark — используют через открытое хранилище и формат открытой таблицы, не перемещая и не переформатируя данные.

Очистите ресурсы

Если вы не планируете продолжать использовать семантическую модель, отчет и блокнот, удалите их из рабочего пространства:

  1. В вашем рабочем пространстве наведите курсор на созданную семантическую модель и выберите меню «Больше опций» (...), затем выберите «Удалить».
  2. Повторяйте это для отчёта и блокнота в вашем рабочем месте.

Удаление отчёта, семантической модели или блокнота не влияет на исходный lakehouse и таблицу dim_products.