Похожа ли таблица SQL Azure на контейнер Azure Cosmos DB?

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

Таблица SQL, аналогичная контейнеру Cosmos DB. Или нам нужно хранить все данные таблицы SQL в одном контейнере с разными ключами раздела?


person Akhil Tyagi    schedule 31.01.2020    source источник
comment
Посмотрите, как это работает для вас codeproject.com/Articles/1266054/   -  person auburg    schedule 31.01.2020
comment
нет они не похожи   -  person 4c74356b41    schedule 31.01.2020


Ответы (2)


Средство миграции данных Cosmos DB можно использовать для импорта данных из SQL Server в Cosmos DB. Перейдите по этой ссылке.

Контейнер Cosmos DB не похож на таблицу SQL Server. Вы можете импортировать данные из нескольких таблиц в базе данных в один контейнер Cosmos DB.

person Bob Ash    schedule 31.01.2020
comment
Спасибо, БОБ, за ваш комментарий. Не могли бы вы помочь разобраться в миграции Azure SQL в Cosmos DB. Я понял, что строка в таблице SQL похожа на документ (элемент) в Cosmos DB, все строки таблиц SQL, которые мы должны перенести COSMOS DB как элементы (1 строка таблицы SQL = документ или элемент в Cosmos DB), как можно Я группирую данные таблицы в COSMOS DB, нужно ли нам добавлять имя таблицы в созданный документ в COSMOS или ключ раздела предназначен для разделения? - person Akhil Tyagi; 03.02.2020
comment
@AkhilTyagi для более простых таблиц, не имеющих отношения, строка таблицы sql может быть преобразована непосредственно в документ cosmos db json. Вы можете добавить дополнительное свойство с именем type для идентификации типа объекта (например, type = Customer, если оно из таблицы Customer). Для сложных типов с реляционными данными в нескольких таблицах, таких как «Адреса клиентов», вам необходимо либо встроить объект Address, либо указать ссылку на него. Вы можете обратиться к этой ссылке Microsoft, чтобы получить подробное представление о docs.microsoft. ru / en-us / azure / cosmos-db / models-data - person Bob Ash; 03.02.2020
comment
Спасибо огромное @BOB, ваши комментарии очень помогли понять. - person Akhil Tyagi; 03.02.2020
comment
Я бы сказал, что логически Контейнер похож на таблицу и элемент в строку. Я имею в виду, что, конечно, вы можете поместить несколько отношений (связанных строк в разных таблицах) в один элемент в контейнере, но также можно выполнить миграцию данных в другую базу данных на основе sql, создав там одну таблицу из нескольких таблиц в исходной базе данных. Таким образом, технически вы можете выполнять миграцию в контейнеры в виде таблиц и элементов в виде строк, просто наличие нескольких связей между ними затруднит выполнение запросов, поэтому важно рассмотреть возможность объединения некоторых тесно связанных таблиц в один контейнер. - person Grengas; 04.09.2020

Не обманывайтесь названием. API-интерфейс Cosmos DB SQL не позволяет работать с Cosmos DB, как если бы это была реляционная база данных.

По сути, это база данных документов JSON для хранения элементов в контейнере. Это без схемы. Хотя вы можете импортировать данные каким-то образом (как связано с @Bob), вы не получите реляционные таблицы - это все документы JSON.

SQL API позволяет вам использовать синтаксис, подобный SQL, для запроса структуры JSON - однако вся семантика основана на этих иерархически структурированных документах, что позволяет вам возвращать массивы документов JSON или их проекции.

Запросы всегда выполняются в контексте определенного контейнера.

Например, вы не можете ПРИСОЕДИНЯТЬСЯ к документам - вы используете ПРИСОЕДИНЯЕТСЯ для самостоятельного присоединения внутри отдельных документов. Существует базовая агрегация по документам и некоторые ограниченные функции группировки.

Семантика сильно отличается от SQL Azure; нужно думать иначе.

person James World    schedule 31.01.2020
comment
Спасибо, Джеймс, за ваш комментарий. Не могли бы вы помочь разобраться в миграции Azure SQL в Cosmos DB. Я понял, что строка в таблице SQL похожа на документ (элемент) в Cosmos DB, все строки таблиц SQL, которые мы должны перенести в COSMOS DB как элементы (1 строка таблицы SQL = документ или элемент в Cosmos DB), как можно Я группирую данные таблицы в базе данных COSMOS, нужно ли нам добавлять имя таблицы в созданный документ в COSMOS или ключ раздела предназначен для разделения? - person Akhil Tyagi; 03.02.2020