Ga aan de slag met de Amazon Redshift Data API

Bronknooppunt: 1075784

Amazon roodverschuiving is een snel, schaalbaar, veilig en volledig beheerd clouddatawarehouse waarmee u uw gegevens op schaal kunt analyseren. Tienduizenden klanten gebruiken Amazon Redshift om exabytes aan gegevens te verwerken om hun analytische werklasten te ondersteunen.

De Amazon Redshift-gegevens-API is een Amazon Redshift-functie die de toegang tot uw Amazon Redshift-datawarehouse vereenvoudigt door de noodzaak weg te nemen om databasestuurprogramma's, verbindingen, netwerkconfiguraties, gegevensbuffering, inloggegevens en meer te beheren. U kunt SQL-instructies uitvoeren met behulp van de AWS-softwareontwikkelingskit (AWS SDK), dat verschillende talen ondersteunt, zoals C++, Go, Java, JavaScript, .Net, Node.js, PHP, Python en Ruby.

Met de Data API kunt u programmatisch toegang krijgen tot gegevens in uw Amazon Redshift-cluster van verschillende AWS-services, zoals AWS Lambda, Amazon Sage Maker laptops, AWS-Cloud9, en ook uw on-premises applicaties die de AWS SDK gebruiken. Hierdoor kunt u cloud-native, container-, serverloze, webgebaseerde en gebeurtenisgestuurde applicaties bouwen op de AWS Cloud.

Met de Data API kunt u ook analytische zoekopdrachten uitvoeren op de eigen tabellen van Amazon Redshift, externe tabellen in uw data lake via Amazon Roodverschuivingsspectrum, en ook in Amazon Redshift-clusters, bekend als het delen van gegevens. Je kunt ook optreden federatieve zoekopdrachten met externe gegevensbronnen zoals Amazon Aurora.

In een eerder bericht hebben we gedetailleerd beschreven hoe u dat kunt doen gebruik de Data API om te communiceren met uw Amazon Redshift-datawarehouse. In dit bericht leren we hoe we aan de slag kunnen gaan met de Data API in verschillende talen en bespreken we ook verschillende gebruiksscenario's waarin klanten deze gebruiken om moderne applicaties te bouwen die modulaire, serverloze en gebeurtenisgestuurde architecturen combineren. De Data API werd in september 2020 gelanceerd en duizenden van onze klanten gebruiken deze al voor verschillende gebruiksscenario's:

  • Orkestratie (ETL) extraheren, transformeren en laden met AWS Stap Functies
  • Toegang tot Amazon Redshift vanuit applicaties
  • Toegang tot Amazon Redshift vanaf SageMaker Jupyter-notebooks
  • Krijg toegang tot Amazon Redshift met REST-eindpunten
  • Gebeurtenisgestuurde extractie, belasting, transformatie
  • Gebeurtenisgestuurd ontwerp van webapplicaties
  • Serverloze workflows voor gegevensverwerking

Belangrijkste kenmerken van de Data API

In deze sectie bespreken we de belangrijkste kenmerken van de Data API.

Gebruik een andere programmeertaal naar keuze

De Data API kan worden geรฏntegreerd met de AWS SDK om query's uit te voeren. Daarom kunt u elke taal gebruiken die door de AWS SDK wordt ondersteund om uw applicatie ermee te bouwen, zoals C++, Go, Java, JavaScript, .NET, Node.js, PHP, Python en Ruby.

Voer individuele of batch-SQL-instructies uit

Met de Data API kunt u individuele query's uitvoeren vanuit uw applicatie of een batch SQL-instructies indienen binnen een transactie, wat handig is om uw werklast te vereenvoudigen.

Voer SQL-instructies uit met parameters

Met de Data API kunt u geparametriseerde SQL-query's uitvoeren, wat de mogelijkheid biedt om herbruikbare code te schrijven bij het ontwikkelen van ETL-code door parameters door te geven aan een SQL-sjabloon in plaats van parameters samen te voegen in elke query afzonderlijk. Dit maakt het ook eenvoudiger om code te migreren van bestaande applicaties waarvoor parametrisatie nodig is. Bovendien maakt parametrisering de code ook veilig door kwaadaardige SQL-injectie te elimineren.

Geen stuurprogramma's nodig

Met de Data API kunt u communiceren met Amazon Redshift zonder dat u JDBC- of ODBC-stuurprogramma's hoeft te configureren. De Data API elimineert de noodzaak voor het configureren van stuurprogramma's en het beheren van databaseverbindingen. U kunt SQL-opdrachten uitvoeren naar uw Amazon Redshift-cluster door een beveiligd API-eindpunt van de Data API aan te roepen.

Geen netwerk- of beveiligingsgroepconfiguratie

De Data API heeft geen permanente verbinding met Amazon Redshift nodig. In plaats daarvan biedt het een veilig HTTP-eindpunt, dat u kunt gebruiken om SQL-instructies uit te voeren. Daarom hoeft u geen VPC, beveiligingsgroepen en gerelateerde infrastructuur op te zetten en te beheren om toegang te krijgen tot Amazon Redshift met de Data API.

Geen wachtwoordbeheer

De Data API biedt twee opties om inloggegevens op te geven:

  • Tijdelijke IAM-referenties โ€“ Bij deze aanpak hoeft u alleen de gebruikersnaam en AWS Identiteits- en toegangsbeheer (IAM) GetClusterCredentials toestemming om toegang te krijgen tot Amazon Redshift zonder wachtwoord. De Data API zorgt automatisch voor het ophalen van uw inloggegevens met behulp van tijdelijke IAM-inloggegevens.
  • AWS Secrets Manager geheim โ€“ Met deze aanpak slaat u uw gebruikersnaam en wachtwoord op in een AWS-geheimenmanager geheim en geef de Data API toegang tot die inloggegevens vanuit dat geheim.

U kunt de Data API ook gebruiken als u werkt met federatieve logins via IAM-inloggegevens. U hoeft geen databasereferenties door te geven via API-aanroepen wanneer u identiteitsproviders zoals Okta, Azure Active Directory of databasereferenties gebruikt die zijn opgeslagen in Secrets Manager. Als u Lambda gebruikt, biedt de Data API een veilige manier om toegang te krijgen tot uw database zonder de extra overhead van het starten van Lambda-functies in Amazon virtuele privรฉcloud (Amazone VPC).

Asynchronous

De Data API is asynchroon. U kunt langlopende query's uitvoeren zonder te hoeven wachten tot deze zijn voltooid, wat essentieel is bij het ontwikkelen van een serverloze, op microservices gebaseerde architectuur. Elke query resulteert in een query-ID, en u kunt deze ID gebruiken om de status en het antwoord van de query te controleren. Bovendien worden de zoekopdrachtresultaten 24 uur bewaard.

Gebeurtenismeldingen

U kunt Data API-gebeurtenissen monitoren in Amazon EventBridge, dat een stroom realtime gegevens vanuit uw bronapplicatie levert aan doelen zoals Lambda. Deze optie is beschikbaar wanneer u uw SQL-instructies in de Data API uitvoert met behulp van de WithEvent parameter ingesteld op true. Wanneer een zoekopdracht is voltooid, kan de Data API automatisch gebeurtenismeldingen naar EventBridge sturen, die u kunt gebruiken om verdere acties te ondernemen. Dit helpt je bij het ontwerpen van gebeurtenisgestuurde applicaties met Amazon Redshift. Voor meer informatie, zie Gebeurtenissen monitoren voor de Amazon Redshift Data API in Amazon EventBridge.

Ga aan de slag met de Data API

Het is eenvoudig om aan de slag te gaan met de Data API met behulp van de AWS SDK. U kunt de Data API gebruiken om uw zoekopdrachten op Amazon Redshift uit te voeren met behulp van verschillende talen, zoals C + +, Go, Java, JavaScript, . Net, Node.js, PHP, Python en Ruby.

Alles API-aanroepen uit verschillende programmeertalen volgen vergelijkbare parameterhandtekeningen. U kunt bijvoorbeeld de ExecuteStatement API om individuele SQL-instructies uit te voeren in de AWS-opdrachtregelinterface (AWS CLI) of verschillende talen zoals Python en JavaScript (NodeJS).

De volgende code is een voorbeeld van het gebruik van de AWS CLI:

aws redshift-data execute-statement
--cluster-identifier my-redshift-cluster
--database dev
--db-user awsuser
--sql 'select data from redshift_tableโ€™;

De volgende voorbeeldcode gebruikt Python:

boto3.client("redshift-data").execute_statement( ClusterIdentifier = โ€˜my-redshift-clusterโ€™, Database = โ€˜devโ€™, DbUser = โ€˜awsuserโ€™, Sql = 'select data from redshift_tableโ€™)

De volgende code maakt gebruik van JavaScript (NodeJS):

new AWS.RedshiftData().executeStatement({ ClusterIdentifier: 'my-redshift-cluster', Database: 'dev', DbUser: 'awsuser', Sql: 'select data from redshift_table'
}).promise();

We hebben ook een GitHub-repository waarin wordt getoond hoe u aan de slag kunt gaan met de Data API in verschillende talen, zoals Go, Java, JavaScript, Python en getypte tekst. U kunt het stapsgewijze proces doorlopen dat in de repository wordt uitgelegd om uw aangepaste applicatie in al deze talen te bouwen met behulp van de Data API.

Gebruiksscenario's met de Data API

U kunt de Data API gebruiken om uw applicatie-architecturen te moderniseren en te vereenvoudigen door modulaire, serverloze, gebeurtenisgestuurde applicaties te creรซren met Amazon Redshift. In deze sectie bespreken we enkele veelvoorkomende gebruiksscenario's.

ETL-orkestratie met stapfuncties

Bij het uitvoeren van ETL-workflows moet u een aantal stappen doorlopen. Naarmate uw bedrijf groter wordt, worden de stappen en afhankelijkheden vaak complex en moeilijk te beheren. Met de Data API en Step Functions kunt u eenvoudig complexe ETL-workflows orkestreren. U kunt de volgende voorbeeldgebruikscasus verkennen en AWS CloudFormatie sjabloon demonstrating ETL-orkestratie met behulp van de Data API en Step Functions.

Krijg toegang tot Amazon Redshift vanuit aangepaste applicaties

Als u uw aangepaste applicatie ontwerpt in een programmeertaal die wordt ondersteund door de AWS SDK, vereenvoudigt de Data API de gegevenstoegang vanuit uw applicaties, die mogelijk een applicatie zijn die wordt gehost op Amazon Elastic Compute-cloud (Amazon EC2) of Amazon Elastic Container-service (Amazon ECS) en andere computerdiensten of een serverloze applicatie gebouwd met Lambda. U kunt een voorbeeld van een gebruiksscenario en CloudFormation verkennen sjabloon laat zien hoe u er gemakkelijk mee kunt werken de Data API van op Amazon EC2 gebaseerde applicaties.

Toegang tot Amazon Redshift vanaf SageMaker Jupyter-notebooks

SageMaker-notitieboekjes zijn erg populair onder de datawetenschapsgemeenschap om machine learning-problemen te analyseren en op te lossen. De Data API maakt het gemakkelijk om gegevens uit uw Amazon Redshift-datawarehouse te openen en te visualiseren zonder problemen met wachtwoordbeheer of VPC- of netwerkproblemen op te lossen. U kunt meer leren over deze gebruikssituatie samen met een CloudFormation sjabloon laten zien hoe gebruik de Data API om te communiceren vanaf een SageMaker Jupyter-notebook.

Krijg toegang tot Amazon Redshift met REST-eindpunten

Met de AWS SDK kunt u de Data API's gebruiken om ze rechtstreeks aan te roepen als REST API-aanroepen zoals GET- of POST-methoden. Voor meer informatie, zie REST voor Redshift Data-API.

Gebeurtenisgestuurde ELT

Gebeurtenisgestuurde applicaties zijn populair bij veel klanten, waarbij applicaties worden uitgevoerd als reactie op gebeurtenissen. Een belangrijk voordeel van deze architectuur is de ontkoppeling van producenten- en consumentenprocessen, wat een grotere flexibiliteit mogelijk maakt bij het ontwerpen van applicaties en het bouwen van ontkoppelde processen. Voor meer informatie, zie Een event-driven applicatie bouwen met AWS Lambda en de Amazon Redshift Data API. De volgende CloudFormation sjabloon toont hetzelfde aan.

Gebeurtenisgestuurd ontwerp van webapplicaties

Net als gebeurtenisgestuurde ELT-applicaties worden ook gebeurtenisgestuurde webapplicaties populair, vooral als u langlopende databasequery's wilt vermijden, die knelpunten veroorzaken voor de applicatieservers. Het kan bijvoorbeeld zijn dat u een webtoepassing gebruikt met een langlopende databasequery die een minuut in beslag neemt. In plaats van die webapplicatie te ontwerpen met langlopende API-aanroepen, kunt u de Data API gebruiken Amazon API-gateway WebSockets, die een lichtgewicht websocket-verbinding tot stand brengt met de browser en de zoekopdracht indient bij Amazon Redshift met behulp van de Data API. Wanneer de query is voltooid, stuurt de Data API een melding naar EventBridge over de voltooiing ervan. Wanneer de gegevens beschikbaar zijn in de Data API, worden deze teruggestuurd naar deze browsersessie en kan de eindgebruiker de dataset bekijken. U kunt een voorbeeldgebruikscasus verkennen samen met een CloudFormation sjabloon laten zien hoe bouw een gebeurtenisgestuurde webapplicatie met behulp van de Data API en API Gateway WebSockets.

Serverloze workflows voor gegevensverwerking

Met de Data API kunt u een serverloze workflow voor gegevensverwerking ontwerpen, waarbij u een end-to-end pijplijn voor gegevensverwerking kunt ontwerpen, georkestreerd met behulp van serverloze AWS-componenten zoals Lambda, EventBridge en de Data API-client. Normaal gesproken omvat een datapijplijn meerdere stappen, bijvoorbeeld:

  1. Laad onbewerkte verkoop- en klantgegevens naar een datawarehouse.
  2. Integreer en transformeer de onbewerkte gegevens.
  3. Bouw samenvattende tabellen of laad deze gegevens naar een datameer, zodat volgende stappen deze gegevens kunnen verbruiken.

Het voorbeeldgebruiksscenario Serverloze workflow voor gegevensverwerking met behulp van Amazon Redshift Data Api laat zien hoe meerdere Lambda-functies op een ontkoppelde manier aan elkaar kunnen worden gekoppeld en een end-to-end datapijplijn kunnen worden opgebouwd. In dat codevoorbeeld wordt een Lambda-functie uitgevoerd via een geplande gebeurtenis waaruit onbewerkte gegevens worden geladen Amazon eenvoudige opslagservice (Amazon S3) naar Amazon Redshift. Na voltooiing genereert de Data API een gebeurtenis die een gebeurtenisregel in EventBridge activeert om een โ€‹โ€‹andere Lambda-functie aan te roepen die onbewerkte gegevens voorbereidt en transformeert. Wanneer dat proces voltooid is, genereert het een nieuwe gebeurtenis die een derde EventBridge-regel activeert om een โ€‹โ€‹andere Lambda-functie aan te roepen en de gegevens naar Amazon S3 te laden. Met de Data API kunt u deze uit meerdere stappen bestaande datapijplijn op een ontkoppelde manier aan elkaar koppelen.

Conclusie

De Data API biedt veel extra voordelen bij het integreren van Amazon Redshift in uw analytische werklast. De Data API vereenvoudigt en moderniseert huidige analytische workflows en maatwerkapplicaties. U kunt langlopende query's uitvoeren zonder dat u uw toepassing hoeft te onderbreken voordat de query's zijn voltooid. Hierdoor kunt u gebeurtenisgestuurde applicaties bouwen, evenals volledig serverloze ETL-pijplijnen.

De Data API-functionaliteiten zijn beschikbaar in veel verschillende programmeertalen, passend bij uw omgeving. Zoals eerder vermeld, is er een grote verscheidenheid aan gebruiksscenario's en mogelijkheden waarbij u de Data API kunt gebruiken om uw analytische workflow te verbeteren. Voor meer informatie, zie De Amazon Redshift Data API gebruiken.


Over de auteurs

David Zhang is een AWS Solutions Architect die klanten helpt bij het ontwerpen van robuuste, schaalbare en datagestuurde oplossingen in meerdere sectoren. Met een achtergrond in software-engineering is David een actieve leider en bijdrager aan open-sourceinitiatieven van AWS. Hij heeft een passie voor het oplossen van zakelijke problemen in de echte wereld en streeft er voortdurend naar om vanuit het perspectief van de klant te werken.

Bipin Pandey is een data-architect bij AWS. Hij houdt ervan om een โ€‹โ€‹datameer en analyseplatform voor zijn klanten te bouwen. Hij heeft een passie voor het automatiseren en vereenvoudigen van klantproblemen met behulp van cloudoplossingen.

Manash deb is een Senior Analytics Specialist Solutions Architect bij AWS. Hij werkt al meer dan 15 jaar aan het bouwen van end-to-end datagestuurde oplossingen in verschillende database- en datawarehousing-technologieรซn. Hij houdt ervan om nieuwe technologieรซn te leren en klantproblemen op te lossen, te automatiseren en te vereenvoudigen met gebruiksvriendelijke clouddata-oplossingen op AWS.

Bhanu Pittamally is Analytics Specialist Solutions Architect, gevestigd in Dallas. Hij is gespecialiseerd in het bouwen van analytische oplossingen. Zijn achtergrond ligt in datawarehouse โ€“ architectuur, ontwikkeling en beheer. Hij is al meer dan 13 jaar actief in data en analyse. Zijn Linkedin-profiel is hier.

Chao Duan is softwareontwikkelingsmanager bij Amazon Redshift, waar hij leiding geeft aan het ontwikkelingsteam dat zich richt op het mogelijk maken van zelfonderhoud en zelfafstemming met uitgebreide monitoring voor Redshift. Chao heeft een passie voor het bouwen van een database met hoge beschikbaarheid, hoge prestaties en kosteneffectiviteit om klanten te voorzien van datagestuurde besluitvorming.

Debu Panda, een Principal Product Manager bij AWS, is marktleider op het gebied van analyse-, applicatieplatform- en databasetechnologieรซn en heeft meer dan 25 jaar ervaring in de IT-wereld.

Bron: https://aws.amazon.com/blogs/big-data/get-started-with-the-amazon-redshift-data-api/

Tijdstempel:

Meer van AWS