2016-02-25 2 views
1

В одной статье из msdn, https://azure.microsoft.com/en-in/documentation/articles/documentdb-partition-data/, есть строка, которая указывает, что может выполняться «субразделение» или «сложное разбиение». Означает ли это:дополнительный раздел или композитный документ разбиения db

  1. В коллекции может быть подразделение?
  2. В одном DocumentDb может быть более одной логики разбиения? Например, у меня будет четыре коллекции внутри одного документа Db. Могут ли два из них быть основаны на хеше, а два других на диапазонах?

Если любой из этих ответов ДА, то может ли кто-нибудь предоставить мне ссылку, которая может привести меня к примеру того же самого?

ответ

1

Ответы:

  1. Там нет явного метода к данным суб-разделов в коллекции. Обычно используется поле для представления типа документа или для пары значений ключа isTypeA: true для каждого документа, но это соглашение, принятое вашим приложением. Однако вы можете создать несколько баз данных (ограничение по умолчанию 5, но может быть расширено по запросу) на каждую учетную запись, и каждый из них может иметь свой собственный набор коллекций. Я использую эту двухуровневую иерархию в (temporalize-api). TenantID определяет мое разделение (база данных) верхнего уровня, используя таблицу поиска плюс значения по умолчанию. Это позволяет мне привлекать арендаторов с критическими или высокими значениями в менее загруженную базу данных и оставлять всех остальных по умолчанию. Я использую согласованный хэш на EntityID для второго уровня (сбор).

  2. Несомненно, нет ничего, что помешало бы вам сделать это. Обратите особое внимание на отличную дискуссию в последнем разделе («Разработка секционированного приложения») в статье Aravind, с которой вы связались. Он включает контрольный список вещей, которые вам нужно будет решить и реализовать. Решатели раздела, предоставленные для .NET SDK, не заботятся об этих проблемах для вас.

Я еще не видел примеры с открытым исходным кодом, что я бы рассмотреть всю систему, включая балансировку, когда емкость добавляется, где хранить карты разделов/мета-данные, и запрос веерной из/агрегатный оптимизация , У меня есть node.js один в пути (temporalize-api) и фактически в производстве. Я принял решение о том, как я собираюсь сделать балансировку и развернуть запрос, и те, которые описаны в комментариях в этом связанном файле, но я не реализовал их все. Я храню метаданные раздела в «первой» коллекции «первой» базы данных.

Смежные вопросы