As expressões de tabelas lógicas definem quais tabelas físicas pertencem a uma tabela lógica. Cada expressão descreve um conjunto de nomes de tabelas por meio de notação de intervalo, passo, enumeração ou distribuição entre bancos de dados.
O DMS oferece suporte a cinco categorias de expressões:
Regras simples — sufixos numéricos sequenciais
Regras multinível — combinações de múltiplos intervalos (produto cartesiano)
Regras de banco de dados e tabelas — distribuição de tabelas entre bancos de dados
Regras de enumeração — listas de valores discretos
Regras de enumeração para bancos de dados — enumeração em bancos de dados específicos
Regras simples
Use regras simples para nomear tabelas com sufixos numéricos sequenciais. O número de dígitos no sufixo corresponde à quantidade de zeros à esquerda na expressão.
|
Sintaxe |
Exemplo |
Tabelas geradas |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Intervalo no meio do nome |
|
|
O passo é o incremento entre valores consecutivos de sufixo. Por exemplo, [0-8:2] começa em 0 e incrementa de 2 em 2, gerando 0, 2, 4, 6, 8.
Regras multinível
Use regras multinível para combinar dois ou mais intervalos em uma única expressão. Cada par de colchetes define um intervalo independente. A expressão gera o produto cartesiano de todos os intervalos, ou seja, todas as combinações possíveis de valores de cada colchete.
Por exemplo, [01-12]_[01-31] combina 12 valores de mês com 31 valores de dia, produzindo 12 × 31 = 372 sufixos únicos para nomes de tabelas.
|
Sintaxe |
Exemplo |
Tabelas geradas |
|
Dois intervalos |
|
12 × 31 = 372 tabelas: |
|
Dois intervalos com passos |
|
6 × 16 = 96 tabelas: meses ímpares (01, 03, 05, 07, 09, 11) × dias ímpares (01, 03, ..., 31) |
Distribuição particionada entre bancos de dados
O sufixo /n divide um intervalo em n grupos iguais e distribui cada grupo para um banco de dados separado. Use essa sintaxe para espalhar tabelas uniformemente por vários bancos de dados em uma única expressão.
Exemplo: alicom_billing_bill_[0000-0007].zw_add_month_[01-12]_[0000-0063/8]
Essa expressão divide o intervalo de sufixos 0000-0063 (64 valores) em 8 grupos de 8 e cria as seguintes tabelas:
alicom_billing_bill_0000.zw_add_month_[01-12]_[0000-0007]alicom_billing_bill_0001.zw_add_month_[01-12]_[0008-0015]...
alicom_billing_bill_0007.zw_add_month_[01-12]_[0056-0063]
Regras de banco de dados e tabelas
Use a notação database.table para definir tabelas que abrangem múltiplos bancos de dados. Esse formato é útil quando o sharding horizontal distribui tabelas por diferentes instâncias de banco de dados.
|
Sintaxe |
Exemplo |
Tabelas geradas |
|
Mesma tabela em múltiplos bancos de dados |
|
Tabela |
|
Tabelas distribuídas uniformemente entre bancos de dados |
|
1.024 tabelas ( |
Regras de enumeração
Use regras de enumeração para especificar valores de sufixo discretos em vez de um intervalo contínuo. Esse recurso é ideal quando a nomenclatura das tabelas não segue um padrão sequencial.
|
Sintaxe |
Exemplo |
Tabelas geradas |
|
Enumeração simples |
|
|
|
Múltiplas expressões |
|
Dois conjuntos de tabelas criados e distribuídos juntos |
|
Intervalo e enumeração mistos |
|
Valores ímpares de 1 a 9 e valores pares de 10 a 20 |
Regras de enumeração para bancos de dados
Use regras de enumeração para bancos de dados para atribuir tabelas específicas a bancos de dados específicos. Essa abordagem é útil quando diferentes bancos hospedam subconjuntos distintos de tabelas.
|
Sintaxe |
Exemplo |
Tabelas geradas |
|
Mesmas tabelas em todos os bancos especificados |
|
Tabelas |
|
Tabelas diferentes em bancos diferentes |
|
5 tabelas em |
|
Quantidades diferentes de tabelas por banco |
|
7 tabelas em |
Referência de sintaxe de expressões
|
Elemento |
Significado |
Exemplo |
|
|
Intervalo contínuo, ordem natural |
|
|
|
Intervalo preenchido com zeros |
|
|
|
Intervalo com tamanho de passo |
|
|
|
Lista de enumeração |
|
|
|
Intervalo dividido em n grupos iguais |
|
|
|
Expressão literal na notação de banco de dados |
|
|
|
Notação de banco de dados e tabela |
|