Amazon DynamoDB -eksport til S3

Amazon DynamoDB -eksport til S3
Du kan enkelt eksportere data fra en AWS DynamoDB -tabell til en Amazon S3 -bøtte. Dette kan skje når som helst så lenge det er innenfor ditt gjenopprettingsvindu for tid. Denne funksjonen lar deg sikkerhetskopiere dataene dine.

Dessuten gjør import av data fra en bestemt tabell til en S3 -bøtte deg i stand til å behandle komplekse spørsmål og utføre analyser på dataene dine ved hjelp av AWS -lim, innsjøformasjon og Athena. DynamoDB -tabelleksportfunksjonen er en fullt administrert, pålitelig og rask løsning. Enda mer, eksporterer en tabell ikke bruker tabellens lesekapasitet og påvirker heller ikke dens ytelse og tilgjengelighet.

Denne artikkelen diskuterer alt du bør vite om eksport av DynamoDB -tabeller til Amazon S3. Du lærer hvordan du eksporterer dynamoDB -tabeller til S3 ved hjelp av BOTO3.

Hvordan eksportere data fra DynamoDB til Amazon S3

For å eksportere data fra Amazon DynamoDB til Amazon S3, kan du bruke AWS Data Pipeline Service og konfigurere den til periodisk eksportdata fra DynamoDB -tabellen din til en S3 -bøtte. Det er også mulig å bruke AWS -limtjenesten til å eksportere data fra DynamoDB til S3 ved å lage en limcrawler som peker på DynamoDB -tabellen din og en limjobb som eksporterer dataene til S3.

En annen tilnærming vil være å bruke AWS SDK -er til å skrive et skript som eksporterer data fra DynamoDB -tabellen din til S3. Skriptet vil bruke DynamoDB API til å skanne eller spørre tabellen og deretter S3 API for å skrive dataene til en bøtte.

Følgende er trinnene som er involvert når du eksporterer en DynamoDB -tabell til Amazon S3:

Trinn 1: Installer BOTO3 -biblioteket

Du kan bruke PIP -install BOTO3 Kommando for å installere BOTO3 -biblioteket, som er Amazon Web Services (AWS) SDK for Python. Spesielt lar biblioteket Python -utviklere skrive programvare som bruker tjenester som Amazon S3 og Amazon EC2.

Installasjonskoden er som vist nedenfor:

PIP -install BOTO3

Trinn 2: Importer de nødvendige bibliotekene

De Importer BOTO3 og Importer JSON Verktøy importerer de nødvendige bibliotekene for skriptet ditt. Boto3 kommer godt med å samhandle med AWS -tjenester, mens JSON brukes til å lese og skrive JSON -data.

Kommandolinjen din skal se slik ut:

Importer BOTO3
Importer JSON

Trinn 3: Lag klienter for DynamoDB og S3

Du vil bruke klienter til å interract med S3 og DynamoDB. For å oppnå dette, må du bruke dynamodb = boto3.klient ('dynamodb') og S3 = BOTO3.klient ('S3') Kommandoer for å opprette klienter for henholdsvis DynamoDB og Amazon S3.

Du kan bruke kommandolinjen nedenfor:

dynamodb = boto3.klient ('dynamodb')
S3 = BOTO3.klient ('S3')

Trinn 4: Spesifiser tabellnavnet og S3 -bøtte -navnet

Definer tabellen og S3 -bøtte -navnene ved å bruke kodene nedenfor:

tabell_name = 'mytablename'
Bucket_Name = 'MyBucketName'

Trinn 5: Bruk skanneoperasjonen til å hente gjenstander

Du kan bruke skanning eller spørringsoperasjoner for å hente alle elementene fra bordet ditt. I denne illustrasjonen vil vi bruke skanneoperasjonen for gjenfinning av elementer som vist:

Resultat = dynamodb.skanning (tablename = tabell_navn)

Trinn 6: Skriv elementer til en fil

Bruk det lokale filsystemet til å skrive elementer til en fil. Filen vil automatisk ta navnet 'Data.json 'i det lokale filsystemet. Dette verktøyet skal hjelpe:

med åpne ('data.json ',' w ') som data_file:
data fil.Skriv (JSON.dumper (resultat ['elementer']))

Trinn 7: Last opp den nye filen til Amazon S3

Du kan nå laste opp filen din til din spesifiserte S3 -bøtte ved å bruke kommandolinjen nedenfor:

S3.upload_file ('data.JSON ', Bucket_name,' Data.json ')

Trinn 8: Valider dataene

Dette trinnet er valgfritt, men ideelt hvis du vil validere dataene dine. Du kan utføre valideringsprosedyren ved å laste ned filen fra Amazon S3 før du leser den.

Konklusjon

Det er viktig å merke seg at skriptet er et grunnleggende eksempel og kan bare være egnet for noen datasett. For store datasett kan du vurdere å bruke Boto3.Dynamodb.Typer.Typeserialiserer For å serialisere eller formatere varene og paginere gjennom resultatene ved hjelp av Dynamodb.skanne () metode. De Grense og EksklusivestartKey Parametere vil komme til nytte under paginering.