View a markdown version of this page

Mengkonfigurasi Partisi Beacon - AWS SDK Enkripsi Basis Data

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengkonfigurasi Partisi Beacon

Bagian ini menjelaskan bagaimana partisi suar dikonfigurasi dan bagaimana pengaruhnya terhadap derivasi suar, perilaku kueri, dan jaminan keamanan. Partisi berlaku untuk semua beacon dan menyediakan model yang konsisten untuk mendistribusikan nilai, membatasi kebocoran frekuensi, dan mengendalikan penggemar kueri. Memahami bagaimana jumlah partisi dan penetapan partisi bekerja bersama membantu Anda memilih konfigurasi yang menyeimbangkan privasi, kinerja, dan keselamatan operasional.

Ikhtisar konfigurasi partisi

Partisi dikonfigurasi pada tingkat tabel logis dan berlaku seragam untuk semua beacon standar. Setiap tabel logis mendefinisikan skema partisi tunggal, yang dikendalikan oleh dua parameter: maksimum NumberOfPartitions dan default. NumberOfPartitions

maksimum NumberOfPartitions

maximumNumberOfPartitionsBidang mendefinisikan batas atas pada jumlah partisi yang dapat digunakan tabel selama masa pakainya. Nilai ini:

  • Menentukan kemungkinan penggemar kueri maksimum.

  • Dapat ditingkatkan seiring dengan berkembangnya volume data atau persyaratan keamanan.

  • Tidak boleh dikurangi setelah data ada.

default NumberOfPartitions

defaultNumberOfPartitionsBidang menentukan berapa banyak partisi yang digunakan oleh beacon standar yang tidak secara eksplisit menyatakan jumlah partisi mereka sendiri. Nilai ini:

  • Harus memuaskan1 ≤ defaultNumberOfPartitions ≤ maximumNumberOfPartitions ≤ 255.

  • Dapat ditingkatkan, tetapi tidak boleh dikurangi setelah item ditulis.

  • Tetapkan nilai ini ke nilai yang sama maximumNumberOfPartitions kecuali jika Anda sengaja ingin membatasi berapa banyak partisi yang dapat digunakan oleh suar individu. Membatasi jumlah partisi untuk beacon dapat berguna ketika atribut memiliki ruang nilai yang kecil atau dipahami dengan baik, ketika atribut sangat sering ditanyakan, atau ketika Anda ingin mengurangi penggemar kueri dan biaya kueri. Membatasi partisi memperdagangkan beberapa keacakan dan manfaat distribusi untuk meningkatkan efisiensi dan prediktabilitas kueri. Untuk sebagian besar atribut, menggunakan set lengkap partisi yang tersedia memberikan keseimbangan terbaik antara perlindungan privasi dan fleksibilitas.

Penugasan partisi menggunakan PartitionSelector

Fungsi yang disediakan pengguna yang disebut PartitionSelector menetapkan setiap item ke partisi pada waktu penulisan. Ini menentukan nomor partisi:

GetPartitionNumber(item, numberOfPartitions, logicalTableName) -> PartitionNumber

Anda dapat menyandikan pengetahuan domain di pemilih untuk:

  • Mendistribusikan nilai frekuensi tinggi di beberapa partisi.

  • Tetapkan nilai langka secara konsisten ke satu partisi.

  • Gunakan pemilih acak default untuk beban kerja tujuan umum.

Derivasi suar menggabungkan nomor partisi yang dipilih, yang tidak pernah diekspos langsung dalam item terenkripsi atau nilai suar.

Mengkonfigurasi jumlah partisi pada beacon standar

Secara default, semua beacon standar digunakan. defaultNumberOfPartitions Anda dapat secara opsional membatasi suar individu dengan pengaturan. numberOfPartitions Ini berguna ketika:

  • Data yang mendasarinya sudah didistribusikan secara merata.

  • Beban kerja kueri diharapkan mengembalikan set hasil yang sangat kecil.

  • Mengurangi penggemar kueri secara signifikan meningkatkan kinerja.

Untuk beacon terbatas, partisi efektif yang digunakan selama derivasi suar dihitung sebagai:

effectivePartition = itemPartition % numberOfPartitions

Terapkan batasan tingkat suar hanya jika diperlukan dan dengan tinjauan keamanan yang sesuai. Kendala yang salah dapat melemahkan jaminan anonimitas atau membuat item yang ada tidak dapat dijangkau selama kueri.

Contoh sintaks konfigurasi

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()?,