DynamoDB ile Elasticsearch
DynamoDB, Elasticsearch'e bir alternatif mi?
Pek değil — farklı problemleri çözerler ve genellikle birlikte kullanılırlar. DynamoDB, ölçekte düşük gecikmeli okuma ve yazma için tasarlanmış sunucusuz bir NoSQL operasyonel veritabanıdır (bir anahtar-değer ve doküman deposu). Elasticsearch, tam metin arama, toplama (aggregation) ve alaka düzeyi sıralaması için tasarlanmış dağıtık bir arama ve analiz motorudur. Yaygın bir desen, DynamoDB'yi kayıt sistemi olarak tutar ve değişiklikleri arama için Elasticsearch'e (veya OpenSearch'e) aktarır.
| Özellik | DynamoDB | Elasticsearch |
|---|---|---|
| Birincil amaç | Operasyonel (OLTP) anahtar-değer / doküman deposu | Verileriniz üzerinde arama ve analiz motoru |
| Veri modeli | Öznitelikli anahtar-değer ve doküman öğeleri | Arama için indekslenmiş JSON dokümanları |
| Sorgu türü | Anahtar ve ikincil indeks aramaları, Query/Scan, PartiQL | Tam metin sorguları, filtreler, toplamalar, vektör arama |
| Tutarlılık | Nihai veya güçlü tutarlı okumalar; ACID işlemleri | Yeni yazmaların gerçek zamanlıya yakın (refresh tabanlı) görünürlüğü |
| Dayanıklılık / rol | Sunucusuz kayıt sistemi, üç Kullanılabilirlik Bölgesinde çoğaltılır | Dağıtık arama katmanı, genellikle bir gerçeklik kaynağından beslenir |
| İkincil indeksler | Global ve yerel ikincil indeksler | Ters indeks (arama için indekslenmiş alanlar) |
| Ölçekleme / ops | Tamamen yönetilen, sunucusuz; her boyuta ölçeklenir, çalıştırılacak sunucu yok | Parça (shard) ve kopyalardan oluşan dağıtık küme; yönetilen veya kendi barındırdığınız |
| Fiyatlandırma modeli | Okuma/yazma isteği başına artı depolama ücreti (isteğe bağlı veya sağlanan) | Küme/düğüm kapasitesi veya yönetilen hizmet fiyatlandırması |
DynamoDB ne zaman kullanılır
İş yükünüz operasyonel olduğunda DynamoDB'yi seçin: bilinen erişim desenlerine karşı yüksek hacimli okuma ve yazma, tahmin edilebilir tek haneli milisaniye gecikmeye, dayanıklı bir kayıt sistemine ve yönetilecek sunucu olmamasına ihtiyaç duyduğunuz yerler. AWS onu, hem anahtar-değer hem de doküman veri modellerini destekleyen, ihtiyaç duyduğunuzda güçlü okuma tutarlılığı ve ACID işlemleri sunan "sunucusuz, tamamen yönetilen, dağıtık bir NoSQL veritabanı" olarak tanımlar. Kullanıcı profilleri, oturumlar, alışveriş sepetleri, lider tabloları, olay defterleri ve meta veriler için uygundur — bir anahtar veya iyi planlanmış bir indeks ile getirdiğiniz her şey.
DynamoDB, ilişkisel JOIN'ler veya tam metin sorgu motoru sağlamaz ve Scan'i tüm tabloyu okur, dolayısıyla anlık "bu ifadeyi içeren herhangi bir dokümanı bul" sorguları onun güçlü yanı değildir. Erişim deseni tasarımının neden önemli olduğunu görmek için Query ile Scan sayfasına bakın.
Elasticsearch ne zaman kullanılır
İş arama veya analiz olduğunda Elasticsearch'i seçin: alaka düzeyi sıralamalı tam metin sorguları, bulanık eşleştirme, otomatik tamamlama, faset filtreleme, günlük ve gözlemlenebilirlik analizi veya büyük hacimli dokümanlar arasında toplamalar. Elastic, Elasticsearch'i "her türlü veri için gerçek zamanlıya yakın arama ve analiz sağlayan bir veri deposu ve vektör veritabanı" olarak tanımlar. Alanlarınız üzerinde bir ters indeks oluşturur, böylece her şeyi taramadan eşleşen dokümanları hızlıca bulabilir ve analitik toplamlar için toplamaları açığa çıkarır.
Elasticsearch tipik olarak bir küme olarak işletilir (kendi barındırdığınız, Elastic Cloud üzerinde veya Amazon OpenSearch Service üzerindeki OpenSearch çatalı olarak) ve genellikle kritik işlemsel verilerin tek dayanıklı deposu olarak hizmet vermek yerine bir kayıt sisteminden senkronize tutulur.
İkisini birlikte kullanma
İkisi birbirini tamamlar ve AWS onları birleştirmek için birinci taraf bir yol sunar. DynamoDB Streams, her öğe düzeyindeki değişikliği gerçek zamanlıya yakın yakalar ve bir sıfır-ETL / OpenSearch Ingestion işlem hattı, bu değişiklik akışını Elasticsearch uyumlu bir arama indeksine çoğaltır. DynamoDB, anahtar tabanlı operasyonel trafiğinize hizmet eden gerçeklik kaynağı olarak kalır; arama indeksi tam metin, bulanık ve vektör sorgularını yanıtlar. AWS, entegrasyonun "tablonuzda okuma veya yazma verimliliği kullanmadığını" belirtir, yani arama üretim trafiğiyle rekabet etmez.
DynamoDB ile çalışma
DynamoDB'yi seçtikten sonra, DynoTable tablolarınızla doğrudan çalışmak için bir masaüstü istemcisidir: öğeleri gözden geçirin ve düzenleyin, anahtar ve filtre koşulları oluşturun ve konsolda elle JSON yazmadan sorgular çalıştırın. Elle bir ifade yazmanız gerektiğinde — bir KeyConditionExpression, FilterExpression veya UpdateExpression — ücretsiz DynamoDB Expression Builder, gerekli ifade-öznitelik adı ve değer yer tutucularıyla doğru sözdizimini üretir ve bunu AWS SDK'leri, CLI ve PartiQL için verir.
DynoTable kapalı kaynaklı ticari bir uygulamadır; DynamoDB ile standart AWS kimlik bilgileriniz üzerinden konuşur ve verilerinizi herhangi bir üçüncü taraf hizmetten geçirmez.
SSS
DynamoDB tam metin arama yapabilir mi?
Yerel olarak değil. DynamoDB öğeleri birincil anahtar veya ikincil indeksle getirir ve sonuçları filtreleyebilir, ancak ters indeksi veya alaka düzeyi sıralaması yoktur ve Scan, tüm tabloyu okur. Tam metin arama için AWS'nin önerilen yolu, DynamoDB değişikliklerini Elasticsearch veya Amazon OpenSearch Service gibi bir arama motoruna aktarmak ve orada sorgulamaktır.
Elasticsearch'ü DynamoDB ile değiştirmeli miyim?
Genellikle hayır — farklı işler için tasarlanmışlardır. DynamoDB, anahtar tabanlı okuma ve yazma için bir operasyonel veritabanıdır; Elasticsearch, bir arama ve analiz motorudur. Elasticsearch'ü yalnızca basit anahtar aramaları için kullanıyorsanız DynamoDB bunu karşılayabilir, ancak tam metin arama, toplamalar veya alaka düzeyi sıralamasına güveniyorsanız, Elasticsearch'ü değiştirmek yerine tutun ve DynamoDB'den besleyin.
Elasticsearch bir veritabanı mı?
Elastic, Elasticsearch'ü gerçek zamanlıya yakın arama ve analiz sağlayan bir veri deposu ve vektör veritabanı olarak tanımlar. Uygulamada çoğu mimari onu, kritik işlemsel verilerin tek dayanıklı deposu olarak değil, birincil bir kayıt sisteminden (DynamoDB gibi) senkronize tutulan bir arama ve analiz katmanı olarak ele alır.
İlgili
- Öğrenin: DynamoDB Streams · Query ile Scan · PartiQL ile SQL
- İfadeleri DynamoDB Expression Builder ile hızlıca oluşturun.
- DynamoDB tablolarınızla doğrudan çalışmak için DynoTable'ı indirin.
Son doğrulama 2026-07-12, AWS DynamoDB Developer Guide ve Elastic'in resmi belgelerine karşı yapıldı. Elasticsearch, Elasticsearch B.V.'nin ticari markasıdır; burada yalnızca tanımlama amacıyla anılmıştır.