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.

ÖzellikDynamoDBElasticsearch
Birincil amaçOperasyonel (OLTP) anahtar-değer / doküman deposuVerileriniz üzerinde arama ve analiz motoru
Veri modeliÖznitelikli anahtar-değer ve doküman öğeleriArama için indekslenmiş JSON dokümanları
Sorgu türüAnahtar ve ikincil indeks aramaları, Query/Scan, PartiQLTam metin sorguları, filtreler, toplamalar, vektör arama
TutarlılıkNihai veya güçlü tutarlı okumalar; ACID işlemleriYeni yazmaların gerçek zamanlıya yakın (refresh tabanlı) görünürlüğü
Dayanıklılık / rolSunucusuz kayıt sistemi, üç Kullanılabilirlik Bölgesinde çoğaltılırDağıtık arama katmanı, genellikle bir gerçeklik kaynağından beslenir
İkincil indekslerGlobal ve yerel ikincil indekslerTers indeks (arama için indekslenmiş alanlar)
Ölçekleme / opsTamamen yönetilen, sunucusuz; her boyuta ölçeklenir, çalıştırılacak sunucu yokParça (shard) ve kopyalardan oluşan dağıtık küme; yönetilen veya kendi barındırdığınız
Fiyatlandırma modeliOkuma/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

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.

Console olmadan DynamoDB ile çalışın

DynoTable, DynamoDB için hızlı bir masaüstü istemcisidir — tablolara göz atın, SQL tarzı sorgular çalıştırın ve item'ları yerel olarak düzenleyin.