Команды подписчика

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

Команды подписчика включают команды уровня базы данных и команды уровня таблицы.

Разрешения

Для выполнения этой команды необходимо иметь по крайней мере разрешения на Администратор базы данных.

Переопределения политики базы данных

База данных-лидер может переопределить следующие политики уровня базы данных в кластере подписчиков: политика кэширования и Авторизованные субъекты.

Политика кэширования

Политика кэширования по умолчанию для кластера подписчиков использует базу данных кластера-лидера и политики кэширования на уровне таблицы.

Параметр Описание
None Используемые политики кэширования — это политики, определенные в базе данных-источнике в кластере-лидере.
replace База данных-источник в базе данных кластера-лидера и политики кэширования на уровне таблиц удаляются (для параметра задано значение null). Эти политики заменяются политиками переопределения на уровне базы данных и таблицы, если они определены.
union(default) База данных-источник в базе данных ведущего кластера и политики кэширования на уровне таблицы объединяются с политиками, определенными в базе данных, и политиками переопределения на уровне таблицы.

Примечание

  • Если коллекция политик кэширования на уровне таблицы и базы данных переопределения пуста, по умолчанию кэшируется все содержимое.
  • Можно задать для переопределения 0dполитики кэширования на уровне базы данных значение , и по умолчанию кэшироваться не будет.

Авторизованные субъекты

Параметр Описание
None Авторизованные субъекты определяются в базе данных-источнике кластера-лидера.
replace Переопределение авторизованных субъектов заменяет авторизованные субъекты из базы данных-источника в кластере-лидере.
union(default) Авторизованные субъекты переопределения объединяются с авторизованными субъектами из базы данных-источника в кластере-лидере.

Примечание

Если коллекция переопределенных авторизованных субъектов пуста, субъектов уровня базы данных не будет.

Переопределения политики таблиц и материализованных представлений

По умолчанию таблицы и материализованные представления в базе данных, за которой следует кластер подписчиков, сохраняют политику кэширования исходной сущности. Однако политики кэширования таблиц и материализованных представлений можно переопределить в кластере подписчиков. replace Используйте параметр , чтобы переопределить политику кэширования исходной сущности.

Команды уровня базы данных

.show подписчик базы данных

Показывает базу данных (или базы данных), за которой следует другой кластер-лидер, в котором настроено одно или несколько переопределений уровня базы данных.

Синтаксис

.showfollowerdatabaseDatabasename

.showfollowerdatabases(Имя_базы данных1,...,DatabaseNameN)

Выходные данные

Выходной параметр Тип Описание
имя_базы_данных string Имя отслеживаемой базы данных.
LeaderClusterMetadataPath string Путь к контейнеру метаданных кластера-лидера.
CachingPolicyOverride string Политика переопределения кэширования для базы данных, сериализованной как JSON или null.
AuthorizedPrincipalsOverride string Коллекция переопределений авторизованных субъектов для базы данных, сериализованная как JSON или null.
AuthorizedPrincipalsModificationKind string Тип изменения, применяемый с помощью AuthorizedPrincipalsOverride (none, unionили replace).
CachingPoliciesModificationKind string Тип изменения, применяемый с помощью политики кэширования на уровне базы данных или таблицы (none, unionили replace).
IsAutoPrefetchEnabled bool Указывает, выполняется ли предварительная выборка новых данных при каждом обновлении схемы.
TableMetadataOverrides string Если этот параметр определен, сериализация json свойства табличного уровня переопределяется.

Кэширование политики базы данных .alter follower

Изменяет политику кэширования базы данных подписчиков, чтобы переопределить один набор в базе данных-источнике в кластере-лидере.

Примечания

Синтаксис

.alterfollowerdatabaseDatabasenamepolicycachinghot=HotDataSpan

Пример

.alter follower database MyDb policy caching hot = 7d

Кэширование политики базы данных .delete follower

Удаляет политику переопределения кэширования базы данных подписчиков. Это удаление приводит к тому, что политика, установленная в базе данных-источнике в кластере-лидере, является действующей.

Примечания

Синтаксис

.deletefollowerdatabaseDatabasenamepolicycaching

Пример

.delete follower database MyDB policy caching

.add follower database principals

Добавляет авторизованные субъекты в коллекцию базы данных подписчика переопределения авторизованных субъектов. Примечания

  • По умолчанию modification kind для таких авторизованных субъектов используется значение none. Для изменения используйте modification kindпараметр alter follower database principals-modification-kind.
  • Просмотреть действующую коллекцию субъектов после изменения можно с помощью .show команд:
  • Просмотр параметров переопределения в базе данных подписчика после изменения можно выполнить с помощью .show follower database

Синтаксис

.addfollowerdatabaseDatabaseName (adminsviewers | users | | monitors) Role (principal1,...,principalN) ['примечания']

Пример

.add follower database MyDB viewers ('aadgroup=mygroup@microsoft.com') 'My Group'

Субъекты базы данных .drop follower

Удаляет авторизованные субъекты из коллекции базы данных подписчиков переопределения авторизованных субъектов.

Примечание

  • Просмотреть действующую коллекцию субъектов после изменения можно с помощью .show команд:
  • Просмотр параметров переопределения в базе данных подписчика после изменения можно выполнить с помощью .show follower database

Синтаксис

.dropfollowerdatabaseDatabaseName (adminsviewers | | | usersmonitors) (principal1,...,principalN)

Пример

.drop follower database MyDB viewers ('aadgroup=mygroup@microsoft.com')

.alter follower database principals-modification-kind

Изменяет тип изменения авторизованных субъектов базы данных подписчиков.

Примечание

  • Просмотреть действующую коллекцию субъектов после изменения можно с помощью .show команд:
  • Просмотр параметров переопределения в базе данных подписчика после изменения можно выполнить с помощью .show follower database

Синтаксис

.alterfollowerdatabaseDatabasenameprincipals-modification-kind = (none | | unionreplace)

Пример

.alter follower database MyDB principals-modification-kind = union

.alter follower database caching-policies-modification-kind

Изменяет тип изменения политик кэширования для базы данных подписчика, таблицы и материализованных представлений.

Примечание

  • Просмотр действующей коллекции политик кэширования на уровне базы данных или таблицы после изменения можно выполнить с помощью стандартных .show команд:
  • Просмотр параметров переопределения в базе данных подписчика после изменения можно выполнить с помощью .show follower database

Синтаксис

.alterfollowerdatabaseDatabasenamecaching-policies-modification-kind = (none | | unionreplace)

Пример

.alter follower database MyDB caching-policies-modification-kind = union

.alter follower database prefetch-extents

Кластер подписчиков может дождаться получения новых данных из базового хранилища на SSD узлов (кэш), прежде чем делать эти данные запрашиваемыми.

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

Предупреждение

  • Этот параметр может снизить актуальность данных в базе данных подписчиков.
  • По умолчанию используется falseконфигурация , и рекомендуется использовать значение по умолчанию.
  • При выборе изменения параметра на trueвнимательно оцените влияние на актуальность в течение некоторого периода времени после изменения конфигурации.

Синтаксис

.alterfollowerdatabaseDatabasenameprefetch-extents = (true | false)

Пример

.alter follower database MyDB prefetch-extents = false

Команды таблиц и материализованных представлений

Изменение таблицы подписчиков или политики кэширования материализованных представлений

Изменяет политику кэширования таблицы или материализованного представления в базе данных подписчика, чтобы переопределить набор политик для базы данных-источника в кластере-лидере.

Примечание

Синтаксис

.alterfollowerdatabaseDatabaseName table TableNamepolicy=cachinghotHotDataSpan

.alterfollowerdatabaseDatabaseName tables (TableName1,...,TableNameN)policycachinghot=HotDataSpan

.alterfollowerdatabaseDatabaseName materialized-view ViewNamepolicy=cachinghotHotDataSpan

.alterfollowerdatabaseDatabaseName materialized-views (ViewName1,...,ViewNameN)policycachinghot=HotDataSpan

Примеры

.alter follower database MyDb tables (Table1, Table2) policy caching hot = 7d

.alter follower database MyDb materialized-views (View1, View2) policy caching hot = 7d

Удаление таблицы подписчиков или политики кэширования материализованных представлений

Удаляет переопределение для политики кэширования таблицы или материализованного представления в базе данных подписчиков. Политика, заданная для базы данных-источника в кластере-лидере, теперь будет действующей политикой.

Примечание

Синтаксис

.deletefollowerdatabaseDatabasenametableTablenamepolicycaching

.deletefollowerdatabaseDatabasenametables(Имя_таблицы1,...,TableNameN)policycaching

.deletefollowerdatabaseDatabasenamematerialized-viewViewNamepolicycaching

.deletefollowerdatabaseDatabasenamematerialized-views(ViewName1,...,ViewNameN)policycaching

Пример

.delete follower database MyDB tables (Table1, Table2) policy caching

.delete follower database MyDB materialized-views (View1, View2) policy caching

Пример конфигурации

Ниже приведены примеры действий по настройке базы данных подписчиков.

В этом примере:

  • Наш кластер MyFollowerCluster подписчиков будет следовать за базой данных MyDatabase из кластера-лидера. MyLeaderCluster

    • MyDatabase содержит N таблицы: MyTable1, MyTable2, MyTable3, ... MyTableN (N> 3).
    • На MyLeaderCluster:
    MyTable1 Политика кэширования MyTable2 Политика кэширования MyTable3...MyTableN Политика кэширования MyDatabase Авторизованные субъекты
    горячий диапазон данных = 7d горячий диапазон данных = 30d горячий диапазон данных = 365d Зрители = aadgroup=scubadivers@contoso.com; Администраторы = aaduser=jack@contoso.com
    • На MyFollowerCluster мы хотим:
    MyTable1 Политика кэширования MyTable2 Политика кэширования MyTable3...MyTableN Политика кэширования MyDatabase Авторизованные субъекты
    горячий диапазон данных = 1d горячий диапазон данных = 3d горячий диапазон данных = 0d (ничего не кэшируется) Администраторы = aaduser=jack@contoso.com, зрители = aaduser=jill@contoso.com

Важно!

И MyFollowerCluster должны MyLeaderCluster находиться в одном регионе.

Шаги, которые нужно выполнить

Условием: Настройте кластер MyFollowerCluster для следовать за базой данных MyDatabase из кластера MyLeaderCluster.

Примечание

Предполагается, что субъект, выполняющий команды управления, будет в DatabaseAdmin базе данных MyDatabase.

Отображение текущей конфигурации

См. текущую конфигурацию, в соответствии с которой MyDatabase выполняется:MyFollowerCluster

.show follower database MyDatabase
| evaluate narrow() // just for presentation purposes
Столбец Значение
имя_базы_данных MyDatabase
LeaderClusterMetadataPath https://storageaccountname.blob.core.windows.net/cluster
CachingPolicyOverride null
AuthorizedPrincipalsOverride []
AuthorizedPrincipalsModificationKind Нет
IsAutoPrefetchEnabled Неверно
TableMetadataOverrides
CachingPoliciesModificationKind Union

Переопределение авторизованных субъектов

Замените коллекцию авторизованных субъектов для на MyDatabaseMyFollowerCluster коллекцию, которая включает только одного пользователя Microsoft Entra в качестве администратора базы данных и одного пользователя Microsoft Entra в качестве средства просмотра базы данных:

.add follower database MyDatabase admins ('aaduser=jack@contoso.com')

.add follower database MyDatabase viewers ('aaduser=jill@contoso.com')

.alter follower database MyDatabase principals-modification-kind = replace

Только эти два конкретных субъекта имеют право доступа MyDatabase к MyFollowerCluster

.show database MyDatabase principals
Роль PrincipalType PrincipalDisplayName PrincipalObjectId PrincipalFQN Примечания
База данных MyDatabase Администратор пользователь Microsoft Entra Джек Kusto (upn: jack@contoso.com) 12345678-abcd-efef-1234-350bf486087b aaduser=87654321-abcd-efef-1234-350bf486087b; 55555555-4444-3333-2222-2d7cd011db47
Средство просмотра базы данных MyDatabase пользователь Microsoft Entra Jill Kusto (upn: jack@contoso.com) abcdefab-abcd-efef-1234-350bf486087b aaduser=54321789-abcd-efef-1234-350bf486087b; 55555555-4444-3333-2222-2d7cd011db47
.show follower database MyDatabase
| mv-expand parse_json(AuthorizedPrincipalsOverride)
| project AuthorizedPrincipalsOverride.Principal.FullyQualifiedName
AuthorizedPrincipalsOverride_Principal_FullyQualifiedName
aaduser=87654321-abcd-efef-1234-350bf486087b; 55555555-4444-3333-2222-2d7cd011db47
aaduser=54321789-abcd-efef-1234-350bf486087b; 55555555-4444-3333-2222-2d7cd011db47

Переопределение политик кэширования

Замените коллекцию политик кэширования на уровне базы данных и таблиц для on MyDatabaseMyFollowerCluster , задав для всех таблиц не кэшированные данные, за исключением двух конкретных таблиц ( MyTable1, MyTable2 - которые будут кэшировать данные для периодов 1d и 3dсоответственно:

.alter follower database MyDatabase policy caching hot = 0d

.alter follower database MyDatabase table MyTable1 policy caching hot = 1d

.alter follower database MyDatabase table MyTable2 policy caching hot = 3d

.alter follower database MyDatabase caching-policies-modification-kind = replace

Только эти две таблицы кэшируют данные, а остальные таблицы имеют горячий период 0dданных :

.show tables details
| summarize TableNames = make_list(TableName) by CachingPolicy
CachingPolicy TableNames
{"DataHotSpan":{"Value":"1.00:00:00"},"IndexHotSpan":{"Value":"1.00:00:00"}} ["MyTable1"]
{"DataHotSpan":{"Value":"3.00:00:00"},"IndexHotSpan":{"Value":"3.00:00:00"}} ["MyTable2"]
{"DataHotSpan":{"Value":"0.00:00:00"},"IndexHotSpan":{"Value":"0.00:00:00"}} ["MyTable3",...,"MyTableN"]
.show follower database MyDatabase
| mv-expand parse_json(TableMetadataOverrides)
| project TableMetadataOverrides
TableMetadataOverrides
{"MyTable1":{"CachingPolicyOverride":{"DataHotSpan":{"Value":"1.00:00:00"},"IndexHotSpan":{"Value":"1.00:00:00"}}}
{"MyTable2":{"CachingPolicyOverride":{"DataHotSpan":{"Value":"3.00:00:00"},"IndexHotSpan":{"Value":"3.00:00:00"}}}

Сводка

См. текущую конфигурацию, в MyDatabase которой выполняется :MyFollowerCluster

.show follower database MyDatabase
| evaluate narrow() // just for presentation purposes
Столбец Значение
имя_базы_данных MyDatabase
LeaderClusterMetadataPath https://storageaccountname.blob.core.windows.net/cluster
CachingPolicyOverride {"DataHotSpan":{"Value":"00:00:00"},"IndexHotSpan":{"Value":"00:00:00"}}
AuthorizedPrincipalsOverride [{"Principal":{"FullyQualifiedName":"aaduser=87654321-abcd-efef-1234-350bf486087b",...},{"Principal":{"FullyQualifiedName":"aaduser=54321789-abcd-efef-1234-350bf486087b",...}]
AuthorizedPrincipalsModificationKind Заменить
IsAutoPrefetchEnabled Неверно
TableMetadataOverrides {"MyTargetTable":{"CachingPolicyOverride":{"DataHotSpan":{"Value":"3.00:00:00"}...},"MySourceTable":{"CachingPolicyOverride":{"DataHotSpan":{"Value":"1.00:00:00"},...}}}
CachingPoliciesModificationKind Заменить