SQL Azure Federation Разделение дизайна и запросов

У меня есть несколько вопросов относительно Microsoft SQL Azure Federations:

1) Могу ли я создать федеративную БД в активной базе данных или мне нужно заранее развернуть федерации?

2) Нужно ли мне вносить какие-либо изменения в запросы SQL, чтобы соответствовать тому, как я запрашиваю федерации, или я могу продолжать использовать свои обычные запросы, поскольку я работал с одной базой данных SQL Server?

3) Когда я разделяю свою базу данных и через какое-то время вижу, что один из шардов очень занят и почти заполнен, как мне решить эту проблему с помощью федераций? - Нужно ли мне разделить только ту единственную федеративную таблицу, которая заполнена на 90%, или мне нужно воссоздать стратегию разделения, используя менее широкий диапазон? Проблема в том, что один конкретный пользователь может быть очень активным, поэтому какую стратегию я использую, чтобы убедиться, что мне не нужно будет заново создавать федеративную стратегию из-за одной очень активной федеративной таблицы/пользователя?

4) Когда у меня есть разные таблицы, которые я хочу разделить с разными первичными ключами, как тогда будет работать шардинг. Например:

Насколько я понимаю:

[Блоги]

blog_id

Информация

[Сообщения в блоге]

id

blog_id

post_content

Поэтому, если я решу сегментировать на основе blog_id от 0 до 1000, 1-2001, у меня будет две федеративные таблицы. Но насколько больше у меня федеративных таблиц, если я добавлю больше таблиц с другими ключами, отличными от blog_id, будет ли у меня больше федеративных таблиц?

Спасибо


person Idan Shechter    schedule 01.10.2012    source источник


Ответы (1)


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

1) Могу ли я создать федеративную БД в активной базе данных или мне нужно заранее развернуть федерации?

Вы, безусловно, можете создать федерацию (федерации) в существующей БД. Нет ограничений на создание федераций только в новой/пустой БД. Однако создание федерации в Active DB ничего вам не даст. Вы должны понимать, что федерации — это отдельные БД. Федерация (или член Федерации) ничего не знает о корневой базе данных федерации (базе данных, в которой вы создали федерацию). Таким образом, вы должны подумать о переносе схемы/данных из Active DB (или корня федерации) после создания федерации.

2) Нужно ли мне вносить какие-либо изменения в запросы SQL, чтобы соответствовать тому, как я запрашиваю федерации, или я могу продолжать использовать свои обычные запросы, поскольку я работал с одной базой данных SQL Server?

Скорее всего ДА. Федерации баз данных Windows Azure SQL — это механизм горизонтального масштабирования для уровня БД. Это означает, что, как и любое веб-приложение нуждается в «специальном» дизайне для работы в среде, подобной ферме (т. е. в масштабируемой среде, такой как Windows Azure), база данных также нуждается в «специальном» дизайне для работы в масштабируемой среде. окружающая обстановка. В SQL Azure Federations нет волшебной палочки, которая заставит ваш код работать. Вы должны спроектировать его для работы.

3) Когда я разделяю свою базу данных и через какое-то время вижу, что один из шардов очень занят и почти заполнен, как мне решить эту проблему с помощью федераций? - Нужно ли мне разделить только ту единственную федеративную таблицу, которая заполнена на 90%, или мне нужно воссоздать стратегию разделения, используя менее широкий диапазон? Проблема в том, что один конкретный пользователь может быть очень активным, поэтому какую стратегию я использую, чтобы убедиться, что мне не нужно будет заново создавать федеративную стратегию из-за одной очень активной федеративной таблицы/пользователя?

Это все о стратегии разделения. Вы должны очень тщательно спроектировать свой ключ федерации и то, как вы распределяете свои данные по разным сегментам. Вы всегда можете РАЗДЕЛИТЬ любую федерацию, если у вас есть атомарные единицы в одном осколке.

4) Когда у меня есть разные таблицы, которые я хочу разделить с разными первичными ключами, как тогда будет работать шардинг.

Если вы хотите разделить разные таблицы на разные ключи, у вас будут разные федерации, каждая со своим ключом федерации и собственными таблицами.

Хорошее видео, которое стоит посмотреть, если вы хотите использовать SQL Federations: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DBI408

person astaykov    schedule 01.10.2012