

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurando o particionamento de beacon
<a name="configuring-beacon-partitioning"></a>

Esta seção descreve como o particionamento do beacon é configurado e como ele afeta a derivação do beacon, o comportamento da consulta e as garantias de segurança. O particionamento se aplica a todos os beacons e fornece um modelo consistente para distribuir valores, limitar o vazamento de frequência e controlar a dispersão de consultas. Entender como a contagem de partições e a atribuição de partições funcionam juntas ajuda você a escolher configurações que equilibram privacidade, desempenho e segurança operacional. 

## Visão geral da configuração da partição
<a name="configuring-beacon-partitioning.overview"></a>

 O particionamento é configurado no nível da tabela lógica e se aplica uniformemente a todos os beacons padrão. **Cada tabela lógica define um único esquema de particionamento, que é controlado por dois parâmetros: **máximo NumberOfPartitions** e padrão. NumberOfPartitions** 

## máximo NumberOfPartitions
<a name="configuring-beacon-partitioning.maximumNumberOfPartitions"></a>

 O `maximumNumberOfPartitions` campo define o limite superior do número de partições que a tabela pode usar durante sua vida útil. Esse valor: 
+ Determina a extensão máxima possível da consulta.
+ Pode ser aumentado à medida que o volume de dados ou os requisitos de segurança evoluem.
+ Não deve ser diminuído após a existência dos dados.

## padrão NumberOfPartitions
<a name="configuring-beacon-partitioning.defaultNumberOfPartitions"></a>

 O `defaultNumberOfPartitions` campo especifica quantas partições são usadas pelos beacons padrão que não declaram explicitamente sua própria contagem de partições. Esse valor: 
+  Deve satisfazer`1 ≤ defaultNumberOfPartitions ≤ maximumNumberOfPartitions ≤ 255`. 
+  Pode ser aumentado, mas nunca deve ser diminuído após a gravação dos itens. 
+  Defina esse valor com o mesmo valor, `maximumNumberOfPartitions` a menos que você queira restringir intencionalmente quantas partições um beacon individual pode usar. Limitar o número de partições de um beacon pode ser útil quando um atributo tem um espaço de valor pequeno ou bem compreendido, quando o atributo é consultado com muita frequência ou quando você deseja reduzir a dispersão e o custo da consulta. A restrição de partições oferece alguns benefícios de aleatoriedade e distribuição para melhorar a eficiência e a previsibilidade das consultas. Para a maioria dos atributos, o uso do conjunto completo de partições disponíveis fornece o melhor equilíbrio entre proteção de privacidade e flexibilidade. 

## Atribuição de partições usando um PartitionSelector
<a name="configuring-beacon-partitioning.partition-selector"></a>

 Uma função fornecida pelo usuário chamada `PartitionSelector` atribui cada item a uma partição no momento da gravação. Ele determina o número da partição: 

```
GetPartitionNumber(item, numberOfPartitions, logicalTableName) -> PartitionNumber
```

 Você pode codificar o conhecimento do domínio no seletor para: 
+ Distribua valores de alta frequência em várias partições.
+ Atribua valores raros de forma consistente a uma única partição.
+ Use o seletor aleatório padrão para cargas de trabalho de uso geral.

 A derivação do beacon incorpora o número da partição selecionada, que nunca é exposto diretamente no item criptografado ou no valor do beacon. 

## Configurando contagens de partições em beacons padrão
<a name="configuring-beacon-partitioning.standard-beacons"></a>

 Por padrão, todos os beacons padrão usam. `defaultNumberOfPartitions` Opcionalmente, você pode restringir um farol individual configurando. `numberOfPartitions` Isso é útil quando: 
+ Os dados subjacentes já estão distribuídos aproximadamente uniformemente.
+ Espera-se que as cargas de trabalho de consulta retornem conjuntos de resultados muito pequenos.
+ Reduzir a dispersão de consultas melhora significativamente o desempenho.

 Para beacons restritos, a partição efetiva usada durante a derivação do farol é calculada como: 

```
effectivePartition = itemPartition % numberOfPartitions
```

 Aplique restrições em nível de beacon somente quando necessário e com a análise de segurança apropriada. Restrições incorretas podem enfraquecer as garantias de anonimato ou tornar os itens existentes inacessíveis durante as consultas. 



### Sintaxe de exemplo de configuração
<a name="w2aac15c27c17c13c15"></a>

------
#### [ Java ]

```
List<StandardBeacon> standardBeaconList = new ArrayList<>();
StandardBeacon exampleStandardBeacon = StandardBeacon.builder()
    .name("{{beaconName}}")
    .length(beaconLengthInBits)
    .numberOfPartitions({{number}})
    .build();
standardBeaconList.add(exampleStandardBeacon);
```

------
#### [ C\# / .NET ]

```
var standardBeaconList = new List<StandardBeacon>();
StandardBeacon exampleStandardBeacon = new StandardBeacon
  {
    Name = "{{beaconName}}",
    Length = 10,
    NumberOfPartitions = {{number}}
  };
standardBeaconList.Add(exampleStandardBeacon);
```

------
#### [ Rust ]

```
let standard_beacon_list = vec![
    StandardBeacon::builder()
        .name("{{beacon_name}}")
        .length({{beacon_length_in_bits}})
        .number_of_partitions({{number}})
        .build()?,
```

------