Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O recurso de banco de dados de seguidores permite anexar um banco de dados localizado em um cluster diferente ao cluster do Azure Data Explorer. O banco de dados de seguidores é anexado no modo somente leitura , tornando possível visualizar os dados e executar consultas sobre os dados que foram ingeridos no banco de dados líder. O banco de dados de seguidores sincroniza as alterações nos bancos de dados de líderes. Devido à sincronização, há um atraso de dados de alguns segundos a alguns minutos na disponibilidade de dados. A duração do intervalo de tempo depende do tamanho total dos metadados do banco de dados líder. Os bancos de dados de líderes e seguidores usam a mesma conta de armazenamento para buscar os dados. O armazenamento pertence ao banco de dados líder. O banco de dados de seguidores visualiza os dados sem precisar ingeri-los. Como o banco de dados anexado é um banco de dados somente leitura, os dados, tabelas e políticas no banco de dados não podem ser modificados, exceto para políticas de cache, entidades e permissões. Os bancos de dados anexados não podem ser excluídos. Eles devem ser destacados pelo líder ou seguidor e só depois podem ser excluídos.
Anexar um banco de dados a um cluster diferente usando o recurso de seguidor é usado como a infraestrutura para compartilhar dados entre organizações e equipes. O recurso é útil para segregar recursos de computação para proteger um ambiente de produção de casos de uso que não sejam de produção. O Follower também pode ser usado para associar o custo do cluster do Azure Data Explorer à parte interessada que executa consultas nos dados.
Que bases de dados são seguidas?
- Um cluster pode seguir um banco de dados, vários bancos de dados ou todos os bancos de dados de um cluster líder.
- Um único cluster pode seguir bancos de dados de vários clusters líderes.
- Um cluster pode conter bancos de dados de seguidores e bancos de dados de líderes.
- Os clusters EngineV3 só podem seguir clusters EngineV3. Da mesma forma, os clusters EngineV2 só podem seguir clusters V2.
Pré-requisitos
- Uma assinatura do Azure. Crie uma conta do Azure gratuita.
- Um cluster e um banco de dados do Azure Data Explorer para o líder e o seguidor. Crie um cluster e um banco de dados.
- A base de dados de líderes deve conter dados. Você pode ingerir dados usando um dos métodos discutidos na visão geral da ingestão.
Anexar uma base de dados
Há vários métodos que você pode usar para anexar um banco de dados. Neste artigo, discutimos a anexação de um banco de dados usando C#, Python, PowerShell ou um modelo do Azure Resource Manager. Para anexar um banco de dados, você deve ter usuário, grupo, entidade de serviço ou identidade gerenciada com pelo menos a função de colaborador no cluster de líderes e no cluster de seguidores. Adicione ou remova atribuições de função usando o portal do Azure, PowerShell, CLI do Azure e modelo ARM. Saiba mais sobre o controle de acesso baseado em função do Azure (Azure RBAC) e as diferentes funções.
Partilha ao nível da tabela
Ao anexar o banco de dados, todas as tabelas, tabelas externas e exibições materializadas são acompanhadas. Você pode compartilhar tabelas específicas/tabelas externas/exibições materializadas configurando o 'TableLevelSharingProperties'.
'TableLevelSharingProperties' contém oito matrizes de cadeias de caracteres: tablesToInclude, tablesToExclude, externalTablesToInclude, externalTablesToExclude, materializedViewsToInclude, materializedViewsToExclude, functionsToIncludee functionsToExclude. O número máximo de entradas em todas as matrizes juntas é 100.
Observação
O compartilhamento no nível da tabela não é suportado ao usar a notação '*' de todos os bancos de dados.
Observação
Quando as visualizações materializadas são incluídas, suas tabelas de origem também são incluídas.
Exemplos
Inclua todas as tabelas. Não é necessário '*', uma vez que todas as tabelas são seguidas por defeito:
tablesToInclude = []Inclua todas as tabelas com nomes que começam com "Logs":
tablesToInclude = ["Logs*"]Excluir todas as tabelas externas:
externalTablesToExclude = ["*"]Exclua todas as visualizações materializadas:
materializedViewsToExclude=["*"]
Substituição do nome do banco de dados
Opcionalmente, você pode tornar o nome do banco de dados no cluster de seguidores diferente do cluster de líderes. Por exemplo, talvez você queira anexar o mesmo nome de banco de dados de vários clusters de líderes a um cluster de seguidores. Para especificar um nome de banco de dados diferente, configure a propriedade 'DatabaseNameOverride' ou 'DatabaseNamePrefix'.
Anexar um banco de dados usando C#
Pacotes NuGet necessários
- Instale Microsoft.Azure.Management.Kusto.
- Instale Microsoft.Rest.ClientRuntime.Azure.Authentication para autenticação.
Exemplo de C#
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var followerSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret);
var resourceManagementClient = new KustoManagementClient(credentials) { SubscriptionId = followerSubscriptionId };
var followerResourceGroupName = "followerResourceGroup";
var followerClusterName = "follower";
var attachedDatabaseConfigurationName = "attachedDatabaseConfiguration"
var leaderSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var leaderResourceGroup = "leaderResourceGroup";
var leaderClusterName = "leader";
var attachedDatabaseConfigurationData = new AttachedDatabaseConfiguration
{
ClusterResourceId = $"/subscriptions/{leaderSubscriptionId}/resourceGroups/{leaderResourceGroup}/providers/Microsoft.Kusto/Clusters/{leaderClusterName}",
DatabaseName = "<databaseName>", // Can be specific database name or * for all databases
DefaultPrincipalsModificationKind = "Union",
Location = "North Central US"
};
// Table level sharing properties are not supported when using '*' all databases notation.
if (attachedDatabaseConfigurationData.DatabaseName != "*")
{
// Set up the table level sharing properties - the following is just an example.
attachedDatabaseConfigurationData.TableLevelSharingProperties = new TableLevelSharingProperties(
tablesToInclude:new List<string> { "table1" },
tablesToExclude:new List<string> { "table2" },
externalTablesToInclude:new List<string> { "exTable1" },
externalTablesToExclude:new List<string> { "exTable2" },
materializedViewsToInclude:new List<string> { "matTable1" },
materializedViewsToExclude:new List<string> { "matTable2" }
);
}
await resourceManagementClient.AttachedDatabaseConfigurations.CreateOrUpdateAsync(
followerResourceGroupName, followerClusterName, attachedDatabaseConfigurationName, attachedDatabaseConfigurationData
);
Verifique se o banco de dados foi anexado com êxito
Para verificar se o banco de dados foi anexado com êxito, localize seus bancos de dados anexados no portal do Azure. Você pode verificar se os bancos de dados foram anexados com êxito nos clusters de seguidores ou líderes .
Verifique o seu grupo de seguidores
Navegue até o cluster de seguidores e selecione Bancos de dados.
Na lista de bancos de dados, procure novos bancos de dados somente leitura.
Você também pode exibir essa lista na página de visão geral do banco de dados:
Verifique o seu cluster de líderes
Navegue até o cluster líder e selecione Bancos de dados
Verifique se as bases de dados relevantes estão marcadas como PARTILHADAS COM OUTRAS PESSOAS>Sim
Alterne o link de relacionamento para exibir detalhes.
Você também pode visualizar isso na página de visão geral do banco de dados:
Desanexar o banco de dados de seguidores
Observação
Para desanexar um banco de dados do lado do seguidor ou líder, você deve ter usuário, grupo, entidade de serviço ou identidade gerenciada com pelo menos a função de contribuidor no cluster do qual você está desanexando o banco de dados. No exemplo abaixo, usamos a entidade de serviço.
Desanexe o banco de dados de seguidores anexado do cluster de seguidores usando C#**
O cluster de seguidores pode desanexar qualquer banco de dados de seguidores anexado da seguinte maneira:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var followerSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret);
var resourceManagementClient = new KustoManagementClient(credentials) { SubscriptionId = followerSubscriptionId };
var followerResourceGroupName = "testrg";
//The cluster and database attached database configuration are created as part of the prerequisites
var followerClusterName = "follower";
var attachedDatabaseConfigurationsName = "attachedDatabaseConfiguration";
await resourceManagementClient.AttachedDatabaseConfigurations.DeleteAsync(
followerResourceGroupName, followerClusterName, attachedDatabaseConfigurationsName
);
Desanexar o banco de dados de seguidores anexado do cluster de líderes usando C#
O cluster líder pode desanexar qualquer banco de dados anexado da seguinte maneira:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var leaderSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret);
var resourceManagementClient = new KustoManagementClient(credentials) { SubscriptionId = leaderSubscriptionId };
var leaderResourceGroupName = "testrg";
var leaderClusterName = "leader";
var followerSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var followerResourceGroupName = "followerResourceGroup";
//The cluster and attached database configuration that are created as part of the Prerequisites
var followerClusterName = "follower";
var attachedDatabaseConfigurationsName = "attachedDatabaseConfiguration";
var followerDatabaseDefinition = new FollowerDatabaseDefinition
{
ClusterResourceId = $"/subscriptions/{followerSubscriptionId}/resourceGroups/{followerResourceGroupName}/providers/Microsoft.Kusto/Clusters/{followerClusterName}",
AttachedDatabaseConfigurationName = attachedDatabaseConfigurationsName
};
await resourceManagementClient.Clusters.DetachFollowerDatabasesAsync(
leaderResourceGroupName, leaderClusterName, followerDatabaseDefinition
);
Gerir entidades, permissões e política de cache
Gerir principais
Ao anexar um banco de dados, especifique o "tipo de modificação de entidades padrão". O padrão é combinar as entidades autorizadas de substituição com a coleção de banco de dados líder de entidades autorizadas
| Tipo | Descrição |
|---|---|
| União | As entidades de banco de dados anexadas sempre incluirão as entidades de banco de dados originais mais outras novas entidades adicionadas ao banco de dados de seguidores. |
| Substituir | Nenhuma herança de entidades do banco de dados original. Devem ser criados novos principais para o banco de dados anexado. |
| Nenhum | Os principais anexados do banco de dados incluem apenas os principais do banco de dados original, sem outros principais. |
Para obter mais informações sobre como usar comandos de controle para configurar as entidades autorizadas, consulte Comandos de controle para gerenciar um cluster de seguidores.
Gerenciar permissões
O gerenciamento da permissão de banco de dados somente leitura é o mesmo que para todos os tipos de banco de dados. Consulte Gerenciar permissões no portal do Azure.
Configurar política de cache
O administrador do banco de dados de seguidores pode modificar a política de cache do banco de dados anexado ou qualquer uma de suas tabelas no cluster de hospedagem. O padrão é combinar o banco de dados de origem no banco de dados de cluster líder e as políticas de cache no nível da tabela com as políticas definidas no banco de dados e nas políticas de substituição no nível da tabela. Você pode, por exemplo, ter uma política de cache de 30 dias no banco de dados líder para executar relatórios mensais e uma política de cache de três dias no banco de dados de seguidores para consultar apenas os dados recentes para solução de problemas. Para obter mais informações sobre como usar comandos de controle para configurar a política de cache no banco de dados ou tabela de seguidores, consulte Comandos de controle para gerenciar um cluster de seguidores.
Observações
- Se houver conflitos entre bancos de dados de clusters de líderes/seguidores, quando todos os bancos de dados forem seguidos pelo cluster de seguidores, eles serão resolvidos da seguinte forma:
- Um banco de dados chamado DB criado no cluster de seguidores tem precedência sobre um banco de dados com o mesmo nome que foi criado no cluster líder. É por isso que o banco de dados DB no cluster seguidor precisa ser removido ou renomeado para que o cluster seguidor inclua o banco de dados DB do líder.
- Um banco de dados chamado DB seguido de dois ou mais clusters de líderes será escolhido arbitrariamente de um dos clusters de líderes e não será seguido mais de uma vez.
- Os comandos para mostrar o log de atividades e o histórico do cluster executados em um cluster de seguidores mostrarão a atividade e o histórico no cluster de seguidores, e seus conjuntos de resultados não incluirão os resultados do cluster ou clusters líderes.
- Por exemplo: um
.show queriescomando executado no cluster de seguidores mostrará apenas consultas executadas em bancos de dados seguidas por cluster de seguidores, e não consultas executadas no mesmo banco de dados no cluster de líderes.
- Por exemplo: um
Limitações
- Os clusters de seguidores e líderes devem estar na mesma região.
- Se a ingestão de streaming for usada numa base de dados que está a ser seguida, o cluster seguidor deve ser habilitado para a ingestão de streaming para permitir o acompanhamento dos dados de ingestão de streaming.
- A criptografia de dados usando chaves gerenciadas pelo cliente não é suportada em clusters de líderes e seguidores.
- Não é possível excluir um banco de dados anexado a um cluster diferente antes de desanexá-lo.
- Não é possível excluir um cluster que tenha um banco de dados anexado a um cluster diferente antes de desanexá-lo.
- As propriedades de partilha ao nível da tabela não são suportadas quando todos os bancos de dados são seguidos.
Próximos passos
- Para obter informações sobre a configuração do cluster de seguidores, consulte Comandos de controle para gerenciar um cluster de seguidores.