Выявлено: смехотворно простой способ интеграции Azure Cosmos DB с Azure Databricks

Простое трехшаговое руководство по Databricks для Azure Cosmos DB

Дружище, наш начинающий инженер по данным, который недавно обнаружил идеальную шпаргалку для чтения и записи файлов в Databricks, теперь повышает свой уровень в мире Azure.

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

Как специалист по данным или специалист по данным, вы можете захотеть использовать Azure Cosmos DB для обслуживания данных, которые смоделированы и подготовлены с помощью Azure Databricks, или вы можете захотеть проанализировать данные, которые уже существуют в Azure Cosmos DB, с помощью Databricks. Какой бы ни была ваша цель, просто следуйте этому трехэтапному руководству, чтобы начать работу.

Что такое Azure Cosmos DB?

Для непосвященных Azure Cosmos DB, достойная названия, представляет собой многомодельную базу данных Microsoft, которая может управлять данными в масштабах планеты. Он принадлежит к стеку База данных NoSQL как услуга, как и его аналог AWS DynamoDB.

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

Cosmos DB поддерживает многомодельные API, такие как MongoDB, Cassandra API, Gremlin API и API Core SQL по умолчанию.

Core SQL API предоставляет вам JSON, подобный хранилищу документов NoSQL, который вы можете легко запрашивать, используя язык, подобный SQL.

Несмотря на свое причудливое название и множество функций, Cosmos DB по сути является хранилищем данных, хранилищем данных, из которого мы можем читать и писать.

Благодаря беспрепятственной интеграции с множеством служб Azure Azure Databricks является идеальным инструментом для работы.

Для выполнения этого упражнения у вас должна быть подписка Azure с запущенными службами Cosmos DB и Databricks. Если у вас его нет, следуйте инструкциям ниже, чтобы получить его и создать службы бесплатно!

Если у вас есть подписка Azure, перейдите к следующему разделу.

См. также:  Найти и вернуть диапазоны всех вхождений данной строки в Swift

Если у вас нет подписки Azure, получите бесплатную пробную версию здесь, это довольно просто и займет менее 2 минут. (вам нужно будет предоставить данные своей кредитной карты, но не волнуйтесь, с вас ни за что не будет взиматься плата)

Теперь все, что нам нужно, это учетная запись Cosmos DB и рабочая область Databricks.

Как создать Azure Cosmos DB?

Microsoft упрощает и упрощает развертывание служб в Azure с помощью шаблонов быстрого запуска.

Перейдите по ссылке на шаблон быстрого запуска, чтобы развернуть Azure Cosmos DB, нажмите Развернуть в Azure, в браузере откроется портал Azure. Просмотрите шаги и создайте свою службу. Учетная запись Cosmos DB будет готова к следующей чашке кофе.

После создания учетной записи вам нужно будет создать базу данных и контейнер, в котором будут храниться ваши данные. Следуйте приведенному ниже примеру, чтобы создать базу данных с именем AdventureWorks и контейнер с именем rating.

Перейдите к развернутой учетной записи Cosmos DB и нажмите Обозреватель данныхНовый контейнер → назовите свою базу данных AdventureWorks → ваш контейнер рейтинги → Разделите ключ на / рейтинг → выберите Пропускная способность вручную и установите для него значение 1000.

Последний шаг — скопировать ключ чтения-записи Azure-Cosmos DB из раздела «Ключи», как показано ниже. Это потребуется для проверки подлинности рабочего пространства Databricks для доступа к учетной записи Cosmos DB.

Как создать рабочее пространство Azure Databricks?

Аналогичным образом перейдите по ссылке ниже, чтобы развернуть рабочее пространство Azure Databricks. После развертывания рабочего пространства все, что вам нужно сделать, это создать кластер.

Перейдите в рабочее пространство Databricks, слева выберите «Кластеры» и создайте новый кластер (выберите версию Scala 2.11, это версия, которая поддерживает библиотеку cosmosdb, которую мы установим далее). Выберите Cluster-Mode как Standard (попробуйте Single Node, если есть какие-либо проблемы со стандартным кластером).

Вау, это было быстрее, чем штраф за превышение скорости!

Простое трехэтапное руководство

  1. Установите последнюю версию библиотеки azure-cosmosdb-spark в свой кластер Databricks.
  2. Записывайте данные в Cosmos DB с помощью соединителя Spark.
  3. Считайте данные из Cosmos DB с помощью соединителя Spark.
См. также:  Swift 3: UICollectionView

Как установить библиотеку cosmosdb?

Шаг 1: Начальная настройка и установка.

В левой панели навигации перейдите к своим Кластерам и выберите созданный вами кластер. Если он не работает, запустите его сейчас.

Перейдите на вкладку Библиотеки и выберите Установить новую. В диалоговом окне установки выберите Maven и подключите следующее:

Координаты: com.databricks.training:databricks-cosmosdb-spark2.2.0-scala2.11:1.0.0

Репозиторий: https://files.training.databricks.com/repo

Примечание. В настоящее время поддерживается версия среды выполнения Databricks с Scala 2.11, поэтому убедитесь, что ваш кластер работает с версией Scala 2.11.

Как записывать / публиковать данные в Azure Cosmos DB?

Шаг 2. Запишите данные в Azure Cosmos DB

Для записи данных в Azure Cosmos DB нам необходимо подготовить конфигурацию, которая сообщает Spark, как подключаться и проходить проверку подлинности в контейнере Cosmos.

URI = "cosmos-db-uri"
PrimaryKey = "your-cosmos-db-key"
CosmosDatabase = "AdventureWorks"
CosmosCollection = "ratings"
writeConfig = {
  "Endpoint": URI,
  "Masterkey": PrimaryKey,
  "Database": CosmosDatabase,
  "Collection": CosmosCollection,
  "writingBatchSize":"1000",
  "Upsert": "true"
}

В новом блокноте создайте указанные выше переменные конфигурации. URI и PrimaryKey — это значения, которые мы скопировали из раздела Ключи вашей учетной записи Azure Cosmos DB. ранее.

Теперь нам просто нужны данные. Загрузите образец CSV-файла с рейтингами (загрузите его с GitHub здесь) в рабочее пространство Databricks.

ratingsDF = spark.read.format("csv")\
            .option("header","true")\
            .load("/FileStore/tables/ratings.csv")

Приведенная выше команда считывает образец CSV-файла с рейтингами со 100 строками в фрейм данных.

(ratingsDF.write
  .mode("overwrite")
  .format("com.microsoft.azure.cosmosdb.spark")
  .options(**writeConfig)
  .save())

Наконец, приведенная выше команда просто помещает данные в наш контейнер Cosmos DB с помощью модуля записи Spark DataFrame.

Убедитесь, что данные действительно находятся в вашем контейнере Cosmos DB, перейдя в учетную запись Cosmos DB → Обозреватель данныхAdventureWorksрейтинги.

Это был ветерок!

Как читать данные из Azure Cosmos DB?

Шаг 3. Запрос данных из Azure Cosmos DB из Databricks

На этом этапе мы прочитаем данные, которые только что поместили в контейнер рейтингов. Сначала нам нужно создать новый параметр конфигурации с именем readConfig, который будет содержать настраиваемый запрос для чтения 10 строк данных.

URI = "cosmos-db-uri"
PrimaryKey = "your-cosmos-db-key"
CosmosDatabase = "AdventureWorks"
CosmosCollection = "ratings"
query = "Select top 10 * from ratings"
readConfig = {
  "Endpoint": URI,
  "Masterkey": PrimaryKey,
  "Database": CosmosDatabase,
  "Collection": CosmosCollection,
  "query_custom": query
}

Пользовательский запрос — это простой запрос SQL, который будет выполняться в контейнере Cosmos DB. Вы также можете писать сложные запросы, включающие условия where. Для этого упражнения будет достаточно простого Select.

См. также:  Обработка ошибок Laravel 8 | Обновление 2021

И для последнего откровения: после установки readConfig мы просто считываем данные из Cosmos DB в фрейм данных с помощью модуля записи Spark DataFrame.

readDF = (spark.read
  .format("com.microsoft.azure.cosmosdb.spark")
  .options(**readConfig)
  .load())

Подобно чтению и записи данных, вы можете следовать аналогичному шаблону для обновления записей в контейнере Cosmos DB. Просто прочтите данные, которые вы хотите обновить, в фрейм данных и управляйте этим фреймворком с вашими обновлениями. После этого просто нажмите обновленный фрейм данных с помощью writeConfig. Вы можете найти пример по этой ссылке GitHub на полный исходный код.

Вывод

Azure Cosmos DB и Azure Databricks являются флагманскими службами от Microsoft, и вместе они становятся намного более мощными, а знание того, как это сделать, сделает вас находчивыми.

Ключевые выводы из этой статьи:

  • Что такое Azure Cosmos DB и как создать учетную запись Cosmos DB?
  • Как создать рабочую область Azure Databricks?
  • Как записать данные в Azure Cosmos DB?
  • Как читать данные из Azure Cosmos DB?

И все это совершенно бесплатно, не тратя ни доллара!

Что вы думаете об Azure Cosmos DB? Поделитесь своим опытом, и, если статья была содержательной, поделитесь ею со своими коллегами.

Ссылка на исходный код Github:

Если вам нужна удобная шпаргалка по Spark, прочтите:

 

Spark Essentials — как читать и записывать данные с помощью PySpark
Больше, чем шпаргалка кdatascience.com

 

Для базового введения в SQL ознакомьтесь с:

 

Руководство по SQL для абсолютных новичков
Изучите абсолютные основы SQL всего за 10 минут medium.com

 

использованная литература

  1. Https://docs.microsoft.com/en-us/learn/modules/integrate-azure-databricks-other-azure-services/1-introduction
  2. Https://docs.microsoft.com/en-gb/azure/cosmos-db/spark-connector#bk_working_with_connector
  3. Https://docs.databricks.com/data/data-sources/azure/cosmosdb-connector.html
Понравилась статья? Поделиться с друзьями:
IT Шеф
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: