Zephyrnet Logosu

Amazon OpenSearch Hizmeti dizin ayarlarını ve eşlemelerini güncellemeye yönelik kalıplar

Tarih:

Amazon Açık Arama Hizmeti gerçek zamanlı uygulama izleme, günlük analitiği ve geniş ölçekte web sitesi araması gibi çok çeşitli kullanım durumları için kullanılır. Etki alanınız yaşlandıkça ve siz ek tüketiciler ekledikçe, ek depolama ve bilgi işlem gereksinimlerini karşılamak için alanın yapılandırmasını yeniden değerlendirmeniz ve değiştirmeniz gerekir. Bu değişiklikleri yaparken kesinti süresini ve performans etkisini en aza indirmek istiyorsunuz.

Müşteriler, bir dizin bakım penceresi olmadan dizin ayarlarını değiştirmek veya OpenSearch Hizmeti etki alanının genel performansını etkilemek için en iyi uygulamalar ve kalıplar hakkında rehberlik arıyor. Bu, verilerin aktif üreticilerini ve tüketicilerini desteklerken çok az veya hiç kesinti olmadan OpenSearch Service dizinlerinde ayar değişikliklerinin nasıl yapıldığını gösterdiğimiz iki bölümlük bir dizinin birinci bölümüdür.

OpenSearch Hizmetindeki Dizinler

OpenSearch Hizmetinde, veriler indekslenmelidir sorgulanmadan önce. Endeksleme arama motorlarının hızlı erişim için verileri organize ettiği yöntemdir. Ortaya çıkan yapı, uygun bir şekilde, bir olarak adlandırılır. indeks. Bir indeks üzerinde gerçekleştirilen tüm işlemler, dizin API'leri. Ayrıca, her indeks şunları içerir: indeks eşlemeleridizindeki alan adlarını ve veri türlerini tanımlayan. Veri üreticileri, bir dizine veri türleriyle yeni alanlar ekleyebilir. Dizin eşlemeleri, dizin yaşam döngüsü boyunca değişemez.

OpenSearch Hizmeti dizinleri, iş yükünüzün profili değiştikçe düzenli olarak ayarlanması gereken iki tür ayara sahiptir:

  • Dinamik – Dizinde istenildiği zaman değiştirilebilen ayarlar
  • Statik – Yalnızca dizin oluşturma sırasında tanımlanabilen ve dizin yaşam döngüsü boyunca değiştirilemeyen ayarlar

Dinamik dizin ayarları, kullanılarak herhangi bir zamanda değiştirilebilir. güncelleme ayarları API'sı. OpenSearch Service etki alanı, dinamik dizin ayarlarında talimatlı işlemleri gerçekleştirirken, dizin bir kesinti gerektirmez. Çoğu dinamik dizin ayarında yapılan değişiklikler, etki alanı kaynaklarının genel kullanımını etkileyen arka plan görevlerini tetiklemez; ancak, çoğaltma sayısını artırma gibi bazı ayarlar index.number_of_replicas or index.auto_expand_replicasve etki alanının yapılandırmasına bağlı olarak, etki alanı çoğaltma eklerken kaynak kullanımında geçici bir artışa neden olabilir. Fazlalık nedeniyle en az bir kopya ve yüksek sorgu aktarım hızına sahip kullanım örnekleri için birden çok kopya bulundurmanızı öneririz.

Eşleme ve parça sayısı gibi statik dizin ayarları, dizin oluşturma sırasında tanımlanır ve dizin yaşam döngüsü boyunca değiştirilemez. Bu gönderide, parça sayısını değiştirmek ve dizin eşlemelerini güncellemek için desenler gibi statik dizin ayarlarıyla çalışmak için kalıplara ve en iyi uygulamalara odaklanıyoruz.

Bu gönderide ele aldığımız tüm işlemler ve prosedürler doğrudan OpenSearch REST API'si aracılığıyla veya OpenSearch Panolarında Geliştirme Araçları.

Herhangi bir kullanım durumunda olduğu gibi, dikkate alınması gereken bir dizi çözüm ve kısıtlama vardır. Birkaç basit temel kalıpla başlıyoruz ve daha operasyonel kısıtlamalara sahip kullanım durumlarını hesaba katarak ve büyük veri kümeleriyle çalışarak bunları geliştiriyoruz.

Çözüme genel bakış

OpenSearch Service, varsayılan olarak 5:1 parçalama stratejisine sahiptir ve burada her dizin beş birincil parçaya bölünür. Her dizin içinde, her birincil parçanın da kendi kopyası vardır. OpenSearch Hizmeti, birincil parçaları ve kopya parçalarını ayrı veri düğümlerine otomatik olarak atar.

Mevcut bir dizinin birincil parça sayısını artırmak mümkün değildir, yani birincil parça sayısını artırmak istiyorsanız bir dizinin yeniden oluşturulması gerekir.

The _reindex işlem, güncellenmiş parçalarla hedef dizinler oluşturmak için idealdir ve eşleme ayarları. _reindex operasyon kaynak yoğundur. Ayarlayarak hedef dizininizdeki kopyaları devre dışı bırakmanızı öneririz. number_of_replicas 0'a ayarlayın ve yeniden indeksleme işlemi tamamlandığında kopyaları yeniden etkinleştirin. Verileriniz ikinci, dayanıklı bir depoda bulunuyorsa, yapılacak en basit şey güncellemeleri duraklatmak ve kaynaktan yeniden indekslemektir. Ancak bu her zaman mümkün değildir. Bu gönderide, parça sayısı gibi statik dizin ayarlarını bile güncellemenizi sağlayan birkaç kalıbı paylaşıyoruz.

kullanmanın en önemli avantajlarından biri _reindex İşlem, kaynak dizini salt okunur moda yerleştirmeyi gerektirmemesidir (veri üreticileri, yeniden dizinleme devam ederken verileri yazmaya devam edebilir). Ayrıca _reindex operasyon yeniden işlemeyi mümkün kılar, dönüşümve bir belge alt kümesini yeniden dizinleme ve hatta belgeleri birden çok dizinden seçerek birleştirme. İle _reindex işleminde, sorgu ile seçtiğiniz belgelerin tamamını veya bir kısmını başka bir dizine kopyalayabilirsiniz. En temel haliyle, _reindex işlemi, bir kaynak ve bir hedef dizini ve yapılandırma parametreleri belirtmenizi gerektirir.

Aşağıda, reindex API tarafından desteklenen kullanım durumlarından bazıları verilmiştir:

  • Tüm belgeleri yeniden indeksleme
  • Kümeler arasında veri aktarırken uzak bir kümeden yeniden dizin oluşturma
  • Bir arama sorgusuyla eşleşen bir belge alt kümesini yeniden dizine ekleme
  • Bir veya daha fazla indeksi birleştirme
  • Yeniden indeksleme sırasında belgeleri dönüştürme

Parça sayısını artırmak için yeni bir dizin oluşturursunuz, number_of_shards istediğiniz birincil parça sayısına göre ayarlayın number_of_replicas 0'a ayarlayın, yeni dizin eşlemesini gereksiniminize göre güncelleyin ve yeniden dizinleme API'si işlemini çalıştırın. Sonra _reindex işlem tamamlandı, güncellemenizi öneririz number_of_replicas İstediğiniz kopya parça düzeyine ulaşmak için hedef dizin ayarlarında.

Aşağıdaki bölümlerde, yeniden indeksleme API'si işlemine ilişkin bir izlenecek yol sunuyoruz. Bu gönderide sunulan kalıpların ve prosedürlerin Amazon OpenSearch Service sürüm 1.3'te doğrulandığını unutmayın.

Önkoşullar

Belgelerin kaynağı dizinde saklanmalıdır ( “_source” dizin eşlemeleri seviyesindeki ayar şu şekilde ayarlanmalıdır: “enabled”:true, varsayılan olan). bu _reindex kaynak belgeler olmadan işlem kullanılamaz.

İstediğiniz eşlemeyle (alan veya veri türü) hedef dizini oluşturun. Gösterim amacıyla, kaynak dizinimizin long olarak tanımlanan bir alan derecelendirmesi vardır ve aynı alanın hedef dizinde kayan veri türünü kullanmasını istiyoruz:

GET /source_index_name/mappings
{ "source_index_name": { "mappings" : { "properties" : { "ratings " : { "type" : "long" },
… } } }
} PUT /destination_index_name
{ "settings": { "index": { "number_of_shards": <DESIRED_NUMBER_OF_PRIMARY_SHARDS>, "number_of_replicas": 0 } }, "mappings": { "properties" : { "ratings" : { "type" : "float" },
… } }
}

Yeni dizin birincil parçalarını ve yapılandırmanıza bağlı olarak çoğaltma parçalarını barındırmak için her etkin katman veri düğümünde yeterli disk alanınız olduğundan emin olun. Disk alanı yetersizse, bir güncelleme işlemi gerçekleştirin Gerekli depolama kapasitesini eklemek için OpenSearch Service etki alanında. Bağlı olarak depolama gereksinimleri, OpenSearch Hizmeti etki alanını farklı bir örnek türüne geçirmeniz gerekebilir, çünkü düğümler üzerinde kısıtlamalar vardır. EBS birim boyutu bu, her örnek türüne monte edilebilir. Kullanılabilir disk alanını doğrulamak için aşağıdaki işlemi yapın:

GET _cat/allocation?v

Aşağıdaki ekran görüntüsü çıktıyı göstermektedir.

kontrol disk.avail kullanılabilir disk alanınızı doğrulamak için sıcak depolama katmanı düğümleri için metrik.

API'yi yeniden indeksleme işlemini kullanın

The _reindex işlem, çalıştırmanın başlangıcında dizini anlık görüntüler ve kaynak dizin üzerindeki etkiyi en aza indirmek için bir anlık görüntü üzerinde işlem gerçekleştirir. Kaynak dizini, verileri sorgulamak ve işlemek için hala kullanılabilir. rağmen _reindex işlem hem eşzamanlı hem de eşzamansız olarak çalışabilir, eşzamansız çalıştırma kullanmanızı öneririz. ilerlemesini takip edebilirsiniz _reindex kullanarak çalıştırmasını iptal edin veya çalışmasını kısın. _task, _cancel, ve _rethrottle sırasıyla işlemler.

Çünkü _reindex işlem, kaynak dizinin salt okunur modda yerleştirilmesini gerektirmez, sorgu ve dizin güncelleme işlemlerine devam etmek ücretsizdir.

Reindex API'sini aşağıdaki komutla kullanın:

POST _reindex?wait_for_completion=false
{ "source": { "index": "source_index_name" }, "dest": { "index": "destination_index_name", "op_type" : "index" }
}

Kaynak dizinleri, _reindex API işlemi, aşağıdakiler için bir sorgu ile desteklenebilir: bir belge alt kümesini yeniden indeksleme ve bunları hedef dizinde saklamak. Yeniden indeksleme işleminin ilerlemesi şu adresten izlenebilir: görevler API'sı operasyon:

GET _tasks

Unutmayın _reindex işlem bir aracılığıyla kısılabilir _rethrottle API veya parametre olarak geçirilen ayarlar. ile görevi iptal edebilirsiniz. _cancel operasyon:

POST _tasks/TASK_ID/_cancel

Aşağıdaki ekran görüntüsü, çıktısını gösterir. _reindex yeniden indeksleme işlemi source_index_name için destination_index_name.

İşlem tamamlandığında, kaynak dizinlerin veya takma adların hem tüketicileri hem de üreticileri hedef dizine yeniden işaret etmelidir ve aynı _reindex Başlangıç ​​sırasında kaynak dizinlerde gerçekleştirilen herhangi bir oluşturma, güncelleme veya silme işlemlerini yakalamak için işlemin yeniden çalıştırılması gerekir. _reindex operasyon sürüyordu. Bu adım gereklidir, çünkü _reindex işlem dizinin anlık görüntüsü üzerinde çalışıyor. şu anda, _reindex işlemin birlikte çalışması gerekiyor “op_type”:”create” eksik ve sürüm dışı belgeleri yeniden düzenlemek için. Aşağıdaki API komutuna bakın:

POST _reindex?wait_for_completion=false
{ "conflicts":"proceed", "source": { "index": "source_index_name" }, "dest": { "index": "destination_index_name", "op_type" : "create" }
}

İşlem tamamlandıktan ve hedef dizindeki veri bütünlüğü onaylandıktan sonra, disk alanını geri kazanmak için kaynak dizini silebilirsiniz.

Bölünmüş dizin API'sini kullanarak dizin parçası sayısını artırın

Bölünmüş dizin API'si ve küçültme dizini API'si, çok çeşitli kullanım durumlarını kapsar ve etki alanında düşük kaynak kullanımıyla sunulur. Ancak bu API'ler, yazma işlemleri için dizinin kapatılmasını gerektirir ve eşleme ayarlarında değişiklik gerektiren kullanım durumlarını ele almaz.

OpenSearch Hizmetinde, number_of_shards indeks ayarı sabittir ve indeks oluşturulduğunda tanımlanır. Bununla birlikte, bu ayar değişmez olmasına rağmen, verileri açıkça yeniden endekslemeye gerek kalmadan dizin parça sayısını artırmak veya azaltmak için birkaç model vardır. Alternatif olarak bölünmüş dizin API'sı yazma işlemlerini askıya alabilen ortamlarda dizin parça sayısını artırmak için. Bölünmüş dizin API'si, farklı bir parça ayarıyla ve verilerinizi yeniden dizine eklemeden yeni bir dizin oluşturmanın basitleştirilmiş bir yolunu sağlar. Bölünmüş dizin API işlemi, istenen sayıda birincil parça içeren salt okunur bir dizini temel alan yeni bir dizin oluşturur.

OpenSearch Hizmetinde, bir indeks takma adı bir veya daha fazla dizine işaret edebilen sanal bir dizin adıdır. Uygulamalarınızda takma adlar kullanarak dizinlere başvurmak, dizin adı değişikliklerinden kaçınmanıza olanak tanır. Dizin takma adları, bölünmüş dizin API işlemi tamamlandıktan sonra tüketicileri ve üreticileri yeni bir dizine yönlendirmek için kullanılır.

Kullanım durumlarının çoğu, veri büyümesi nedeniyle mevcut bir dizindeki parça sayısını artırmaya odaklansa da, mevcut bir dizindeki parça sayısını azaltmanız gereken durumlar da vardır. Bu tür durumlar bazen, gerçek bir dizin boyutunun, dizin oluşturulduğunda beklenenden daha az olduğu ve bir dizinle hizalamak istediğinizde ortaya çıkar. parça stratejisi için OpenSearch Hizmeti için operasyonel en iyi uygulamalar. Bir dizindeki parça sayısını azaltmanız gereken durumlarda, dizini küçültme API'sı bu görevi başarmak için.

Sonuç

Bu gönderide, şu durumlarda en iyi uygulamaları inceledik: verileri yeniden indeksleme OpenSearch Hizmetinde değişiklik yapmak için statik dizin ayarları ve çok az veya hiç dizin kapalı kalma süresi gerektirmeyen eşlemeler. kullanımını da ele aldık. bölünmüş indeks ve dizinin salt okunur bir duruma yerleştirilebildiği kullanım durumları için birincil dizin parçası sayısını değiştirmek için dizini küçültme API'leri.

Bir sonraki gönderimizde, kaynak OpenSearch Service etki alanındaki yükü ve kaynak kullanımını hafifletmek için uzaktan dizin oluşturmaya yönelik kalıpları keşfedeceğiz.


Yazarlar Hakkında

Mihail Vaynshteyn Amazon Web Services ile bir Çözüm Mimarıdır. Mikhail, hastaların sonuçlarını iyileştirmeye yardımcı olan çözümler oluşturmak için sağlık ve yaşam bilimleri müşterileriyle birlikte çalışır. Mikhail, veri analitiği hizmetlerinde uzmanlaşmıştır.

Sukhomoy Başak Amazon Web Services'ta veri ve analitik çözümleri tutkusu olan bir Çözüm Mimarıdır. Sukhomoy, iş sonuçlarına ulaşmak için uygulamaları tasarlamalarına, oluşturmalarına ve ölçeklendirmelerine yardımcı olmak için kurumsal müşterilerle birlikte çalışır.

spot_img

En Son İstihbarat

spot_img