Amazon Neptune
Database Cloud Practitioner Solutions Architect Associate

Amazon Neptune

Amazon Neptune

W pełni zarządzana baza grafowa AWS. Modeluj i przeszukuj relacje między danymi za pomocą property graph (Gremlin/openCypher) lub RDF (SPARQL) - od grafów wiedzy po wykrywanie oszustw.

Amazon Neptune to w pełni zarządzana baza grafowa w chmurze AWS, zaprojektowana do przechowywania miliardów relacji i odpytywania ich z milisekundowym opóźnieniem. W przeciwieństwie do relacyjnych baz danych, Neptune przechowuje dane jako węzły (nodes) i krawędzie (edges), co czyni go idealnym do modelowania złożonych sieci powiązań.

Neptune obsługuje dwa modele grafowe: property graph (zapytania w Gremlin lub openCypher) oraz RDF (zapytania w SPARQL). Dzięki Neptune Serverless nie musisz zarządzać pojemnością - baza skaluje się automatycznie do Twoich potrzeb.

Czy wiesz, ze...

Amazon Neptune może przechowywać i przeszukiwać miliardy krawędzi (relacji) z milisekundowym opóźnieniem. Nazwa serwisu nawiązuje do planety Neptun - tak jak planeta ma złożony układ księżyców, tak baza grafowa modeluje złożone sieci powiązań. Neptune jest używany m.in. przez serwisy społecznościowe do rekomendacji znajomych i przez instytucje finansowe do wykrywania oszustw w czasie rzeczywistym.

Pro Tip

Zanim wybierzesz Neptune, upewnij się że Twój problem naprawdę wymaga bazy grafowej. Jeśli potrzebujesz przeszukiwać relacje o głębokości 3+ poziomów (np. "znajomi znajomych znajomych") - Neptune będzie znacznie szybszy niż SQL JOIN-y. Ale jeśli masz proste relacje 1:N, zwykły RDS wystarczy. Używaj Neptune Serverless na start - unikniesz przepłacania za nieużywaną pojemność.

Amazon Neptune to w pelni zarzadzana grafowa baza danych obslugujaca property graph (Apache TinkerPop/Gremlin, openCypher) i RDF (SPARQL). Neptune jest zoptymalizowany do przechowywania miliardow relacji i odpytywania grafow z latencja milisekund. Dane sa automatycznie replikowane 6x w 3 Availability Zones z ciaglym backupem do S3.

1

Tworzenie klastra Neptune

Klaster Neptune sklada sie z primary instance (read-write) i do 15 read replica w roznych AZ. Typy instancji: db.r5 (pamiec od 16 GiB do 768 GiB), db.r6g (Graviton2, do 20% lepsza wydajnosc za cene). Storage automatycznie skaluje sie do 128 TiB w przyrostach po 10 GiB. Dla srodowisk dev/test Neptune Serverless eliminuje zarzadzanie instancjami.

2

Wybor silnika zapytan

Neptune obsluguje 3 jezyki zapytan: Gremlin (traversal API dla property graph - imperatywny styl, swietny do path traversal), openCypher (deklaratywny SQL-podobny jezyk dla property graph - latwiejszy do nauki), SPARQL (dla grafow RDF/knowledge graphs). Mozesz uzywac wielu jezykow jednoczesnie na tym samym klastrze. Gremlin i openCypher dzialaja na tym samym modelu danych.

3

Ladowanie danych grafowych

Neptune Bulk Loader laduje dane z S3 w formatach CSV (dla property graph) lub N-Triples/N-Quads/Turtle (dla RDF). Bulk Loader dziala rownolegle i jest 10-100x szybszy niz pojedyncze operacje INSERT. Format CSV wymaga osobnych plikow dla wezlow (node ID, label, properties) i krawedzi (edge ID, source, target, label). Dla duzych zbiorow (miliardy krawedzi) ladowanie trwa minuty zamiast godzin.

4

Konfiguracja endpointow

Neptune udostepnia: cluster endpoint (read-write, zawsze wskazuje na primary), reader endpoint (load-balanced miedzy replikami), instance endpoints (bezposredni dostep do konkretnej instancji). Aplikacje zapisujace uzywaja cluster endpoint, czytajace - reader endpoint. Polaczenia przez WebSocket (Gremlin), HTTPS (SPARQL/openCypher) lub Bolt protocol (openCypher). IAM authentication lub VPC-only access.

5

Wykonywanie traversali grafowych

Gremlin traversal przechodzi po grafie krok po kroku: g.V().has("user","name","Jan").out("follows").out("follows").dedup() znajduje "friends of friends". openCypher: MATCH (u:user {name:"Jan"})-[:follows]->()-[:follows]->(fof) RETURN DISTINCT fof. Neptune optymalizuje traversale automatycznie - index-free adjacency zapewnia O(1) lookup sasiadow niezaleznie od rozmiaru grafu.

6

Backup i odtwarzanie

Neptune automatycznie wykonuje ciagly backup do S3 z retencja 1-35 dni. Mozesz przywrocic klaster do dowolnego punktu w czasie (point-in-time recovery) z dokladnoscia do sekundy. Reczne snapshoty nie maja limitu retencji. Klonowanie klastra (Neptune clone) tworzy kopie w minuty dzieki copy-on-write - idealne do testowania zapytan na danych produkcyjnych bez kopiowania storage.

Praktyczne wskazowki do modelowania grafow, optymalizacji zapytan i wykorzystania zaawansowanych funkcji Neptune w produkcji.

Property graph (Gremlin/openCypher) vs RDF (SPARQL)

Property graph to najlepszy wybor dla wiekszosci aplikacji: sieci spolecznosciowe, fraud detection, recommendation engines, identity graphs. Wezly i krawedzie maja etykiety i wlasciwosci. RDF/SPARQL wybierz dla knowledge graphs, danych semantycznych, integracji z ontologiami (OWL) i linked data. Jezeli nie masz istniejacego modelu RDF, zacznij od property graph z openCypher - jest najlatwiejszy do nauki.

Poczatkujacy

Bulk Loader dla poczatkowego ladowania

Nigdy nie laduj duzych zbiorow danych przez pojedyncze INSERT/addVertex - to 100x wolniejsze niz Bulk Loader. Przygotuj dane w S3 jako pliki CSV: vertices.csv (id, label, property:type) i edges.csv (id, from, to, label). Bulk Loader laduje rownolegle z wielu plikow. Dla 1 miliarda krawedzi na instancji r5.8xlarge ladowanie trwa ok. 30-45 minut. Uzyj parametru failOnError=FALSE dla tolerancji na bledy.

Poczatkujacy

Neptune ML - sieci neuronowe na grafach

Neptune ML integruje sie z SageMaker do trenowania modeli Graph Neural Network (GNN) bezposrednio na danych w Neptune. Zastosowania: przewidywanie brakujacych krawedzi (link prediction), klasyfikacja wezlow, wykrywanie anomalii. Neptune ML eksportuje graf do S3, trenuje model w SageMaker i udostepnia predykcje jako zapytania Gremlin. Nie musisz byc ekspertem ML - pipeline jest zautomatyzowany.

Zaawansowany

Neptune Streams dla Change Data Capture

Neptune Streams rejestruje kazda zmiane w grafie (dodanie/modyfikacja/usuniecie wezlow i krawedzi) jako sekwencyjny log. Mozesz czytac stream przez REST API i reagowac na zmiany: synchronizacja z ElasticSearch (full-text search na grafie), aktualizacja cache, triggerowanie Lambda. Stream retencja to 7 dni. Uzyj Neptune Streams zamiast pollingu bazy - jest wydajniejszy i gwarantuje kolejnosc.

Zaawansowany

Neptune Serverless dla zmiennych workloadow

Neptune Serverless automatycznie skaluje capacity (w NCU - Neptune Capacity Units) od 1.0 do 128 NCU na podstawie obciazenia. Placisz za faktycznie zuzyty czas obliczen. Idealny dla: srodowisk dev/test, workloadow z pikami, nowych projektow gdzie nie znasz wymaganej wydajnosci. Ustaw minimum NCU na 2.5 dla produkcji (zapewnia szybki cold start). Dla stalego obciazenia provisioned jest 30-40% tanszy.

Poczatkujacy

Global Database dla multi-region

Neptune Global Database replikuje klaster do maksymalnie 5 regionow AWS z latencja ponizej 1 sekundy. Region secondary obsluguje zapytania read-only, a w przypadku awarii regionu primary mozesz promowac secondary do primary w mniej niz 1 minute. Idealne dla globalnych aplikacji wymagajacych niskiej latencji odczytu grafu w wielu regionach (np. fraud detection, recommendation).

Zaawansowany

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon Neptune bezposrednio w konsoli AWS.

Do czego sluzy Amazon Neptune?

01

Grafy wiedzy (Knowledge Graphs)

Buduj powiązania między encjami - produktami, osobami, koncepcjami. Idealne do wyszukiwarek semantycznych i systemów rekomendacji.

02

Wykrywanie oszustw (Fraud Detection)

Analizuj relacje między transakcjami, kontami i urządzeniami w czasie rzeczywistym, aby wykrywać podejrzane wzorce i sieci oszustów.

03

Sieci społecznościowe

Modeluj relacje użytkowników - znajomości, obserwacje, interakcje. Szybko odpytuj grafy o wzajemne połączenia i rekomendacje.

04

Zarządzanie tożsamością i dostępem

Mapuj złożone hierarchie uprawnień, ról i zasobów. Szybko sprawdzaj kto ma dostęp do czego w dużych organizacjach.

Co musisz wiedziec?

Property Graph

Model grafowy, w którym węzły i krawędzie mają właściwości (pary klucz-wartość). Odpytywany przez Gremlin lub openCypher.

RDF (Resource Description Framework)

Model grafowy oparty na trójkach (subject-predicate-object). Odpytywany przez SPARQL. Używany w grafach wiedzy i Linked Data.

Neptune Serverless

Tryb, w którym baza automatycznie skaluje pojemność (NCU - Neptune Capacity Units) w górę i w dół. Płacisz tylko za zużyte zasoby.

Neptune ML

Integracja z machine learning - pozwala tworzyć predykcje grafowe (np. przewidywanie brakujących krawędzi) bez pisania kodu ML.

Neptune Analytics

Silnik analityczny do uruchamiania zapytań grafowych na dużych zbiorach danych bez potrzeby ładowania ich do bazy Neptune.

Read Replica

Kopia bazy tylko do odczytu. Możesz mieć do 15 replik w różnych AZ, co zwiększa dostępność i wydajność odczytów.

Architektura: Neptune jako grafowa baza danych

Typowa architektura Neptune z klastrem primary/replica, bulk loaderem z S3 i integracja z Neptune ML przez SageMaker. Aplikacja laczy sie przez endpointy cluster (zapis) i reader (odczyt).

Aplikacja Klient Gremlin/openCypher/SPARQL laczacy sie przez WebSocket/HTTPS
cluster endpoint
Neptune Writer
Neptune Writer Primary instance: read-write, cluster endpoint, do 128 TiB storage
reader endpoint
Neptune Readers
Neptune Readers Do 15 read replica z load-balanced reader endpoint, auto-failover
bulk loader
S3 (Bulk Load)
S3 (Bulk Load) Pliki CSV/N-Triples do masowego ladowania danych grafowych
export + inference
SageMaker (Neptune ML)
SageMaker (Neptune ML) Trening modeli GNN: link prediction, klasyfikacja wezlow, anomalie
change events
Neptune Streams
Neptune Streams CDC log zmian w grafie: sync z ElasticSearch, triggerowanie Lambda
Index-free adjacency zapewnia O(1) lookup sasiadow - wydajnosc traversalu nie spada wraz z rozmiarem grafu.
Neptune Streams umozliwia reakcje na zmiany w grafie w czasie rzeczywistym (sync z ElasticSearch, triggerowanie Lambda).
Global Database replikuje graf do 5 regionow z latencja < 1 sekundy i failoverem < 1 minuty.

Ile kosztuje Amazon Neptune?

On-Demand (instancje)

Płacisz za godzinę działania instancji Neptune. Cena zależy od typu instancji.

db.r5.large: ~$0.348/godz. (~$254/mies.) w eu-west-1

Neptune Serverless

Płacisz za Neptune Capacity Units (NCU) za godzinę. Skaluje się automatycznie od min do max NCU.

~$0.1098/NCU-godz. Min 1 NCU, max 128 NCU

Storage i I/O

Storage: opłata za GB/mies. I/O: opłata za milion żądań odczytu/zapisu.

Storage: ~$0.10/GB/mies., I/O: ~$0.20/milion żądań

Backup i eksport

Automatyczne backupy do 35 dni są bezpłatne. Dodatkowy storage backupów jest płatny.

Dodatkowy backup: ~$0.021/GB/mies.

Przyklady AWS CLI

Utwórz klaster Neptune

Tworzy nowy klaster bazy grafowej Neptune

aws neptune create-db-cluster \
 --db-cluster-identifier moj-graf \
 --engine neptune \
 --engine-version 1.3.1.0 \
 --serverless-v2-scaling-configuration MinCapacity=1,MaxCapacity=16

Dodaj instancję do klastra

Tworzy instancję (writer) w klastrze Neptune

aws neptune create-db-instance \
 --db-instance-identifier moj-graf-writer \
 --db-cluster-identifier moj-graf \
 --db-instance-class db.serverless \
 --engine neptune

Sprawdź status klastra

Wyświetla informacje o klastrach Neptune

aws neptune describe-db-clusters \
 --query "DBClusters[].{ID:DBClusterIdentifier,Status:Status,Endpoint:Endpoint,Engine:EngineVersion}" \
 --output table

Załaduj dane z S3

Importuje dane grafowe z pliku w S3 do Neptune (bulk loader)

curl -X POST https://moj-graf.cluster-abc123.eu-west-1.neptune.amazonaws.com:8182/loader \
 -H "Content-Type: application/json" \
 -d '{"source":"s3://moj-bucket/dane/","format":"csv","iamRoleArn":"arn:aws:iam::123456789012:role/NeptuneLoadRole","region":"eu-west-1"}'

Quiz: Amazon Neptune

Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.

Twoj wynik: 0 / 4

1. Które języki zapytań obsługuje Amazon Neptune?

2. Co to jest Neptune Serverless?

3. Do czego najlepiej nadaje się baza grafowa?

4. Ile replik do odczytu może mieć klaster Neptune?

Chcesz poznac Amazon Neptune w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon Neptune krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy