Поделиться через


Практическое руководство. Доступ к зеркало зеркало данных Azure Cosmos DB в Lakehouse и записных книжках из Microsoft Fabric (предварительная версия)

В этом руководстве описано, как получить доступ к зеркало зеркало данным Azure Cosmos DB в Lakehouse и записных книжках из Microsoft Fabric (предварительная версия).

Внимание

Зеркальное отображение для Azure Cosmos DB в настоящее время находится в предварительной версии. Рабочие нагрузки не поддерживаются во время предварительной версии. В настоящее время поддерживаются только учетные записи Azure Cosmos DB для NoSQL.

Необходимые компоненты

Совет

Во время общедоступной предварительной версии рекомендуется использовать тестовую копию существующих данных Azure Cosmos DB, которые можно быстро восстановить из резервной копии.

Настройка зеркало и предварительных требований

Настройте зеркало для базы данных Azure Cosmos DB для NoSQL. Если вы не знаете, как настроить зеркало ing, ознакомьтесь с руководством по настройке зеркало базы данных.

  1. Перейдите на портал Fabric.

  2. Создайте новое подключение и зеркало базу данных с помощью учетных данных учетной записи Azure Cosmos DB.

  3. Дождитесь завершения начального моментального снимка данных реплика.

Доступ к зеркало данным в Lakehouse и записных книжках

Используйте Lakehouse для дальнейшего расширения количества инструментов, которые можно использовать для анализа данных Azure Cosmos DB для NoSQL зеркало данных. Здесь вы используете Lakehouse для создания записной книжки Spark для запроса данных.

  1. Снова перейдите на портал Fabric.

  2. В меню навигации выберите "Создать".

  3. Выберите "Создать", найдите раздел Инжиниринг данных и выберите Lakehouse.

  4. Укажите имя для Lakehouse и нажмите кнопку "Создать".

  5. Теперь выберите " Получить данные" и " Создать ярлык". В списке сочетаний клавиш выберите Microsoft OneLake.

  6. Выберите зеркало зеркало базу данных Azure Cosmos DB для NoSQL из списка зеркало баз данных в рабочей области Fabric. Выберите таблицы для использования с Lakehouse, нажмите кнопку "Далее", а затем нажмите кнопку "Создать".

  7. Откройте контекстное меню таблицы в Lakehouse и выберите "Создать или существующую записную книжку".

  8. Новая записная книжка автоматически открывается и загружает кадр данных с помощью SELECT LIMIT 1000.

  9. Запустите запросы, например SELECT * с помощью Spark.

    df = spark.sql("SELECT * FROM Lakehouse.OrdersDB_customers LIMIT 1000")
    display(df)
    

    Снимок экрана: записная книжка Lakehouse с предварительно загруженными данными из зеркало базы данных.

    Примечание.

    В этом примере предполагается имя таблицы. Используйте собственную таблицу при написании запроса Spark.

Обратная запись с помощью Spark

Наконец, вы можете использовать код Spark и Python для записи данных обратно в исходную учетную запись Azure Cosmos DB из записных книжек в Fabric. Это может потребоваться для записи аналитических результатов в Cosmos DB, которые затем можно использовать в качестве уровня обслуживания для приложений OLTP.

  1. Создайте четыре ячейки кода в записной книжке.

  2. Сначала запросите зеркало данные.

    fMirror = spark.sql("SELECT * FROM Lakehouse1.OrdersDB_ordercatalog")
    

    Совет

    Имена таблиц в этих примерах блоков кода предполагают определенную схему данных. Вы можете заменить это собственными именами таблиц и столбцов.

  3. Теперь преобразуйте и агрегируете данные.

    dfCDB = dfMirror.filter(dfMirror.categoryId.isNotNull()).groupBy("categoryId").agg(max("price").alias("max_price"), max("id").alias("id"))
    
  4. Затем настройте Spark для записи обратно в учетную запись Azure Cosmos DB для NoSQL с помощью учетных данных, имени базы данных и имени контейнера.

    writeConfig = {
      "spark.cosmos.accountEndpoint" : "https://xxxx.documents.azure.com:443/",
      "spark.cosmos.accountKey" : "xxxx",
      "spark.cosmos.database" : "xxxx",
      "spark.cosmos.container" : "xxxx"
    }
    
  5. Наконец, используйте Spark для записи обратно в исходную базу данных.

    dfCDB.write.mode("APPEND").format("cosmos.oltp").options(**writeConfig).save()
    
  6. Запустите все ячейки кода.

    Внимание

    Операции записи в Azure Cosmos DB будут использовать единицы запросов (ЕЗ).