Интеграция OneLake с Azure Synapse Analytics

Azure Synapse — это бесграничная служба аналитики, которая объединяет хранилище корпоративных данных и аналитику больших данных. В этом руководстве показано, как подключиться к OneLake с помощью Azure Synapse Analytics.

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

Перед началом работы убедитесь, что у вас есть следующие элементы:

  • Доступ к рабочей области Synapse, где можно создать или использовать пул Apache Spark и запустить скрипты SQL.
  • Доступ к озеру в Fabric.
  • Путь ABFS для папки Lakehouse таблиц или таблицы, которую требуется запросить.

Запись данных из Synapse с помощью Apache Spark

Выполните следующие действия, чтобы использовать Apache Spark для записи примеров данных в OneLake из Azure Synapse Analytics.

  1. Откройте рабочую область Synapse и создайте пул Apache Spark с предпочитаемыми параметрами.

    Снимок экрана: где выбрать

  2. Создайте записную книжку Apache Spark.

  3. Откройте записную книжку, задайте язык PySpark (Python) и подключите его к созданному пулу Spark.

  4. На отдельной вкладке перейдите к Microsoft Fabric lakehouse и найдите папку верхнего уровня Tables.

  5. Щелкните правой кнопкой мыши папку "Таблицы" и выберите "Свойства".

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

  6. Скопируйте путь ABFS из области свойств.

    Снимок экрана: место копирования пути ABFS.

  7. Теперь вернитесь в записную книжку Azure Synapse и в первой новой ячейке кода укажите путь к lakehouse. Этот путь указывает на папку "Таблицы" в lakehouse, где вы записываете примеры данных позже. Запустите ячейку.

    # Replace the path below with the ABFS path to your lakehouse Tables folder. 
    oneLakePath = 'abfss://WorkspaceName@onelake.dfs.fabric.microsoft.com/LakehouseName.lakehouse/Tables'
    
  8. В новой ячейке кода загрузите данные из открытого набора данных Azure в фрейм данных. Этот набор данных — тот, который вы загружаете в "lakehouse". Запустите ячейку.

    yellowTaxiDf = spark.read.parquet('wasbs://nyctlc@azureopendatastorage.blob.core.windows.net/yellow/puYear=2018/puMonth=2/*.parquet')
    display(yellowTaxiDf.limit(10))
    
  9. В новой ячейке кода отфильтруйте, преобразуйте или подготовьте данные. В этом сценарии можно обрезать набор данных для ускорения загрузки, объединения с другими наборами данных или фильтрации до определенных результатов. Запустите ячейку.

    filteredTaxiDf = yellowTaxiDf.where(yellowTaxiDf.tripDistance>2).where(yellowTaxiDf.passengerCount==1)
    display(filteredTaxiDf.limit(10))
    
  10. В новой ячейке кода, используя путь OneLake, запишите отфильтрованный DataFrame в новую таблицу Delta-Parquet в вашем озере данных Fabric. Запустите ячейку.

    filteredTaxiDf.write.format("delta").mode("overwrite").save(oneLakePath + '/Taxi/')
    
  11. Наконец, в новой ячейке кода проверьте успешность записи данных, прочитав новую таблицу Delta из OneLake. Запустите ячейку.

    lakehouseRead = spark.read.format('delta').load(oneLakePath + '/Taxi/')
    display(lakehouseRead.limit(10))
    

Поздравляю. Теперь вы можете считывать и записывать данные в OneLake с помощью Apache Spark в Azure Synapse Analytics.

Чтение данных из Synapse с помощью SQL

Выполните следующие действия, чтобы использовать SQL serverless для чтения данных из OneLake в Azure Synapse Analytics.

  1. Откройте Fabric lakehouse и определите таблицу, которую вы хотите запросить из Synapse.

  2. Щелкните таблицу правой кнопкой мыши и выберите пункт "Свойства".

  3. Скопируйте путь ABFS для таблицы.

    Снимок экрана: место копирования пути ABFS.

  4. Откройте рабочую область Synapse в Synapse Studio.

  5. Создайте новый скрипт SQL.

  6. В редакторе SQL-запросов введите следующий запрос, заменив ABFS_PATH_HERE на путь, скопированный ранее.

    SELECT TOP 10 *
    FROM OPENROWSET(
    BULK 'ABFS_PATH_HERE',
    FORMAT = 'delta') as rows;
    
  7. Запустите запрос, чтобы просмотреть первые 10 строк таблицы.

Поздравляю. Теперь данные из OneLake можно считывать с помощью SQL Serverless в Azure Synapse Analytics.