

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 비컨 파티셔닝 구성
<a name="configuring-beacon-partitioning"></a>

이 섹션에서는 비컨 파티셔닝을 구성하는 방법과 비컨 파생, 쿼리 동작 및 보안 보장에 미치는 영향을 설명합니다. 파티셔닝은 모든 비컨에 적용되며 값을 배포하고, 주파수 누출을 제한하고, 쿼리 팬아웃을 제어하기 위한 일관된 모델을 제공합니다. 파티션 수와 파티션 할당이 함께 작동하는 방식을 이해하면 프라이버시, 성능 및 운영 안전의 균형을 맞추는 구성을 선택하는 데 도움이 됩니다.

## 파티션 구성 개요
<a name="configuring-beacon-partitioning.overview"></a>

 파티셔닝은 논리적 테이블 수준에서 구성되며 모든 표준 비컨에 균일하게 적용됩니다. 각 논리적 테이블은 **maximumNumberOfPartitions** 및 **defaultNumberOfPartitions**의 두 파라미터로 제어되는 단일 파티셔닝 체계를 정의합니다.

## maximumNumberOfPartitions
<a name="configuring-beacon-partitioning.maximumNumberOfPartitions"></a>

 `maximumNumberOfPartitions` 필드는 테이블이 수명 동안 사용할 수 있는 파티션 수의 상한을 정의합니다. 이 값은 다음과 같습니다.
+ 가능한 최대 쿼리 팬아웃을 결정합니다.
+ 데이터 볼륨 또는 보안 요구 사항이 증가함에 따라 늘릴 수 있습니다.
+ 데이터가 있는 후에는 줄이면 안 됩니다.

## defaultNumberOfPartitions
<a name="configuring-beacon-partitioning.defaultNumberOfPartitions"></a>

 `defaultNumberOfPartitions` 필드는 고유한 파티션 수를 명시적으로 선언하지 않는 표준 비컨에서 사용되는 파티션 수를 지정합니다. 이 값은 다음과 같습니다.
+  를 충족해야 합니다`1 ≤ defaultNumberOfPartitions ≤ maximumNumberOfPartitions ≤ 255`.
+  늘릴 수 있지만 항목을 작성한 후에는 줄이면 안 됩니다.
+  개별 비컨이 사용할 수 있는 파티션 수를 의도적으로 제한하려는 `maximumNumberOfPartitions` 경우가 아니면이 값을와 동일한 값으로 설정합니다. 비컨의 파티션 수를 제한하면 속성의 값 공간이 작거나 잘 이해되는 경우, 속성을 매우 자주 쿼리하는 경우 또는 쿼리 팬아웃 및 쿼리 비용을 줄이려는 경우에 유용할 수 있습니다. 파티션을 제한하면 쿼리 효율성과 예측 가능성을 높이기 위해 일부 무작위성과 배포 이점이 상호 작용합니다. 대부분의 속성에서 사용 가능한 전체 파티션 세트를 사용하면 개인 정보 보호와 유연성 간의 균형을 가장 잘 맞출 수 있습니다.

## PartitionSelector 할당
<a name="configuring-beacon-partitioning.partition-selector"></a>

 라는 사용자 제공 함수는 쓰기 시 각 항목을 파티션에 `PartitionSelector` 할당합니다. 파티션 번호를 결정합니다.

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

 선택기에서 도메인 지식을 인코딩하여 다음을 수행할 수 있습니다.
+ 여러 파티션에 고주파 값을 분산합니다.
+ 단일 파티션에 드문 값을 일관되게 할당합니다.
+ 범용 워크로드에는 기본 무작위 선택기를 사용합니다.

 비컨 파생은 선택한 파티션 번호를 통합하며, 암호화된 항목 또는 비컨 값에 직접 노출되지 않습니다.

## 표준 비컨에서 파티션 수 구성
<a name="configuring-beacon-partitioning.standard-beacons"></a>

 기본적으로 모든 표준 비컨은를 사용합니다`defaultNumberOfPartitions`. 선택적으로를 설정하여 개별 비컨을 제한할 수 있습니다`numberOfPartitions`. 이는 다음과 같은 경우에 유용합니다.
+ 기본 데이터는 이미 거의 균일하게 분산되어 있습니다.
+ 쿼리 워크로드는 매우 작은 결과 집합을 반환할 것으로 예상됩니다.
+ 쿼리 팬아웃을 줄이면 성능이 크게 향상됩니다.

 제한된 비컨의 경우 비컨 추출 중에 사용되는 유효 파티션은 다음과 같이 계산됩니다.

```
effectivePartition = itemPartition % numberOfPartitions
```

 필요한 경우에만 적절한 보안 검토를 통해 비컨 수준 제약 조건을 적용합니다. 잘못된 제약 조건은 익명 보장을 약화시키거나 쿼리 중에 기존 항목에 연결할 수 없게 만들 수 있습니다.



### 구성 구문의 예제
<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()?,
```

------