Kom igång med Amazon Redshift Data API

Källnod: 1075784

Amazon RedShift är ett snabbt, skalbart, säkert och fullt hanterat molndatalager som gör att du kan analysera din data i stor skala. Tiotusentals kunder använder Amazon Redshift för att bearbeta exabyte data för att driva sina analytiska arbetsbelastningar.

Smakämnen Amazon Redshift Data API är en Amazon Redshift-funktion som förenklar åtkomsten till ditt Amazon Redshift-datalager genom att ta bort behovet av att hantera databasdrivrutiner, anslutningar, nätverkskonfigurationer, databuffring, referenser och mer. Du kan köra SQL-satser med hjälp av AWS Software Development Kit (AWS SDK), som stöder olika språk som C++, Go, Java, JavaScript, .Net, Node.js, PHP, Python och Ruby.

Med Data API kan du programmatiskt komma åt data i ditt Amazon Redshift-kluster från olika AWS-tjänster som t.ex. AWS Lambda, Amazon SageMaker bärbara datorer, AWS Cloud9, och även dina lokala applikationer som använder AWS SDK. Detta låter dig bygga molnbaserade, containeriserade, serverlösa, webbaserade och händelsedrivna applikationer på AWS Cloud.

Data-API:et låter dig också köra analytiska frågor på Amazon Redshifts ursprungliga tabeller, externa tabeller i din datasjö via Amazon Redshift Spectrum, och även över Amazon Redshift-kluster, som är känt som datadeling. Du kan också uppträda federerade frågor med externa datakällor som t.ex Amazon-Aurora.

I ett tidigare inlägg delade vi mycket detaljerat om hur du kan använd Data API för att interagera med ditt Amazon Redshift-datalager. I det här inlägget lär vi oss hur man kommer igång med Data API på olika språk och diskuterar även olika användningsfall där kunder använder detta för att bygga moderna applikationer som kombinerar modulära, serverlösa och händelsedrivna arkitekturer. Data API lanserades i september 2020 och tusentals av våra kunder använder det redan för en mängd olika användningsfall:

  • Extrahera, transformera och ladda (ETL) orkestrering med AWS stegfunktioner
  • Få åtkomst till Amazon Redshift från applikationer
  • Få tillgång till Amazon Redshift från SageMaker Jupyter-anteckningsböcker
  • Få tillgång till Amazon Redshift med REST-slutpunkter
  • Händelsedrivet extrakt, belastning, transformation
  • Händelsedriven webbapplikationsdesign
  • Serverlösa arbetsflöden för databearbetning

Nyckelfunktioner i Data API

I det här avsnittet diskuterar vi nyckelfunktionerna i Data API.

Använd ett annat programmeringsspråk du väljer

Data API integreras med AWS SDK för att köra frågor. Därför kan du använda vilket språk som helst som stöds av AWS SDK för att bygga din applikation med den, som C++, Go, Java, JavaScript, .NET, Node.js, PHP, Python och Ruby.

Kör individuella eller batch SQL-satser

Med Data API kan du köra individuella frågor från din applikation eller skicka in en grupp SQL-satser inom en transaktion, vilket är användbart för att förenkla din arbetsbelastning.

Kör SQL-satser med parametrar

Med Data API kan du köra parameteriserade SQL-frågor, vilket ger möjligheten att skriva återanvändbar kod när du utvecklar ETL-kod genom att skicka parametrar till en SQL-mall istället för att koppla ihop parametrar till varje fråga på egen hand. Detta gör det också lättare att migrera kod från befintliga applikationer som behöver parametreras. Parameterisering gör dessutom kod säker genom att eliminera skadlig SQL-injektion.

Inga förare behövs

Med Data API kan du interagera med Amazon Redshift utan att behöva konfigurera JDBC- eller ODBC-drivrutiner. Data API eliminerar behovet av att konfigurera drivrutiner och hantera databasanslutningar. Du kan köra SQL-kommandon till ditt Amazon Redshift-kluster genom att anropa en Data API-säkrad API-slutpunkt.

Ingen nätverks- eller säkerhetsgruppsinställning

Data API behöver inte en beständig anslutning med Amazon Redshift. Istället tillhandahåller den en säker HTTP-slutpunkt, som du kan använda för att köra SQL-satser. Därför behöver du inte konfigurera och hantera en VPC, säkerhetsgrupper och relaterad infrastruktur för att komma åt Amazon Redshift med Data API.

Ingen lösenordshantering

Data API erbjuder två alternativ för att tillhandahålla autentiseringsuppgifter:

  • IAM tillfälliga referenser – Med detta tillvägagångssätt behöver du bara ange användarnamnet och AWS identitets- och åtkomsthantering (JAG ÄR) GetClusterCredentials tillstånd att komma åt Amazon Redshift utan lösenord. Data API hanterar automatiskt hämtning av dina autentiseringsuppgifter med hjälp av tillfälliga IAM-uppgifter.
  • AWS Secrets Manager hemlighet – Med detta tillvägagångssätt lagrar du ditt användarnamn och lösenord i en AWS Secrets Manager hemligt och tillåt Data API att komma åt dessa referenser från den hemligheten.

Du kan också använda Data API när du arbetar med federerade inloggningar via IAM-uppgifter. Du behöver inte skicka databasuppgifter via API-anrop när du använder identitetsleverantörer som Okta, Azure Active Directory eller databasuppgifter lagrade i Secrets Manager. Om du använder Lambda ger Data API ett säkert sätt att komma åt din databas utan extra kostnader för att starta Lambda-funktioner i Amazon Virtual Private Cloud (Amazon VPC).

Asynchronous

Data API är asynkront. Du kan köra långa frågor utan att behöva vänta på att det ska slutföras, vilket är nyckeln till att utveckla en serverlös, mikrotjänstbaserad arkitektur. Varje fråga resulterar i ett fråge-ID, och du kan använda detta ID för att kontrollera status och svar på frågan. Dessutom lagras frågeresultat i 24 timmar.

Händelsemeddelanden

Du kan övervaka Data API-händelser i Amazon EventBridge, som levererar en ström av realtidsdata från din källapplikation till mål som Lambda. Det här alternativet är tillgängligt när du kör dina SQL-satser i Data API med hjälp av WithEvent parameter inställd på true. När en fråga är klar kan Data API automatiskt skicka händelseaviseringar till EventBridge, som du kan använda för att vidta ytterligare åtgärder. Detta hjälper dig att designa händelsedrivna applikationer med Amazon Redshift. För mer information, se Övervakning av händelser för Amazon Redshift Data API i Amazon EventBridge.

Kom igång med Data API

Det är lätt att komma igång med Data API med AWS SDK. Du kan använda Data API för att köra dina frågor på Amazon Redshift med olika språk som t.ex C + +, Go, java, JavaScript, . Net, node.js, PHP, Python och Rubin.

Alla API-samtal från olika programmeringsspråk följer liknande parametersignaturer. Du kan till exempel köra ExecuteStatement API för att köra individuella SQL-satser i AWS-kommandoradsgränssnitt (AWS CLI) eller olika språk som Python och JavaScript (NodeJS).

Följande kod är ett exempel som använder AWS CLI:

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

Följande exempelkod använder Python:

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

Följande kod använder JavaScript (NodeJS):

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

Vi har också publicerat en GitHub repository visar hur man kommer igång med Data API på olika språk som t.ex Go, java, JavaScript, Pythonoch MASKINSKRIVEN. Du kan gå igenom den steg-för-steg-process som förklaras i arkivet för att bygga din anpassade applikation på alla dessa språk med hjälp av Data API.

Användningsfall med Data API

Du kan använda Data API för att modernisera och förenkla dina applikationsarkitekturer genom att skapa modulära, serverlösa, händelsedrivna applikationer med Amazon Redshift. I det här avsnittet diskuterar vi några vanliga användningsfall.

ETL-orkestrering med stegfunktioner

När du utför ETL-arbetsflöden måste du genomföra ett antal steg. När ditt företag skalas blir stegen och beroenden ofta komplexa och svåra att hantera. Med Data API och Step Functions kan du enkelt orkestrera komplexa ETL-arbetsflöden. Du kan utforska följande exempel på användningsfall och AWS molnformation mall demonstrera ETL-orkestrering med hjälp av Data API och Step Functions.

Få åtkomst till Amazon Redshift från anpassade applikationer

Om du designar din anpassade applikation i något programmeringsspråk som stöds av AWS SDK, förenklar Data API dataåtkomst från dina applikationer, som kan vara en applikation som finns på Amazon Elastic Compute Cloud (Amazon EC2) eller Amazon Elastic Container Service (Amazon ECS) och andra datortjänster eller en serverlös applikation byggd med Lambda. Du kan utforska ett exempel på användningsfall och CloudFormation mall visar hur man enkelt arbetar med Data API från Amazon EC2-baserade applikationer.

Få tillgång till Amazon Redshift från SageMaker Jupyter-anteckningsböcker

SageMaker anteckningsböcker är mycket populära bland datavetenskapsgemenskapen för att analysera och lösa problem med maskininlärning. Data API gör det enkelt att komma åt och visualisera data från ditt Amazon Redshift-datalager utan att felsöka problem med lösenordshantering eller VPC- eller nätverksproblem. Du kan lära dig mer om detta användningsfall tillsammans med en CloudFormation mall visar hur man använd Data API för att interagera från en SageMaker Jupyter-anteckningsbok.

Få tillgång till Amazon Redshift med REST-slutpunkter

Med AWS SDK kan du använda data-API:erna för att direkt anropa dem som REST API-anrop som GET- eller POST-metoder. För mer information, se REST för Redshift Data API.

Händelsestyrd ELT

Händelsedrivna applikationer är populära bland många kunder, där applikationer körs som svar på händelser. En primär fördel med denna arkitektur är frikopplingen av producent- och konsumentprocesser, vilket möjliggör större flexibilitet i applikationsdesign och konstruktion av frikopplade processer. För mer information, se Bygga en händelsedriven applikation med AWS Lambda och Amazon Redshift Data API. Följande CloudFormation mall visar detsamma.

Händelsedriven webbapplikationsdesign

I likhet med händelsedrivna ELT-applikationer blir även händelsedrivna webbapplikationer populära, speciellt om du vill undvika långvariga databasfrågor, som skapar flaskhalsar för applikationsservrarna. Du kanske till exempel kör en webbapplikation som har en långvarig databasfråga som tar en minut att slutföra. Istället för att designa den webbapplikationen med långvariga API-anrop kan du använda Data API och Amazon API Gateway WebSockets, som skapar en lätt webbsocket-anslutning med webbläsaren och skickar frågan till Amazon Redshift med hjälp av Data API. När frågan är klar skickar Data API ett meddelande till EventBridge om att den är klar. När data är tillgänglig i Data API, skjuts den tillbaka till den här webbläsarsessionen och slutanvändaren kan se datasetet. Du kan utforska ett exempel på användningsfall tillsammans med en CloudFormation mall visar hur man bygga en händelsedriven webbapplikation med hjälp av Data API och API Gateway WebSockets.

Serverlösa arbetsflöden för databearbetning

Med Data API kan du designa ett serverlöst databearbetningsarbetsflöde, där du kan designa en end-to-end databehandlingspipeline orkestrerad med serverlösa AWS-komponenter som Lambda, EventBridge och Data API-klienten. Vanligtvis innefattar en datapipeline flera steg, till exempel:

  1. Ladda rå försäljnings- och kunddata till ett datalager.
  2. Integrera och transformera rådata.
  3. Bygg sammanfattningstabeller eller ladda ner dessa data till en datasjö så att efterföljande steg kan konsumera denna data.

Användningsexemplet Serverlöst databearbetningsarbetsflöde med Amazon Redshift Data Api visar hur man kopplar ihop flera Lambda-funktioner på ett frikopplat sätt och bygger en datapipeline från slut till ände. I det kodexemplet körs en Lambda-funktion genom en schemalagd händelse som laddar rådata från Amazon enkel lagringstjänst (Amazon S3) till Amazon Redshift. När det är färdigt genererar Data API en händelse som utlöser en händelseregel i EventBridge för att anropa en annan Lambda-funktion som förbereder och transformerar rådata. När den processen är klar genererar den en annan händelse som utlöser en tredje EventBridge-regel för att anropa en annan Lambda-funktion och laddar ner data till Amazon S3. Data-API:et gör att du kan koppla denna flerstegsdatapipeline på ett frikopplat sätt.

Slutsats

Data API erbjuder många ytterligare fördelar när du integrerar Amazon Redshift i din analytiska arbetsbelastning. Data API förenklar och moderniserar nuvarande analytiska arbetsflöden och anpassade applikationer. Du kan utföra långvariga frågor utan att behöva pausa din ansökan för att frågorna ska slutföras. Detta gör att du kan bygga händelsedrivna applikationer såväl som helt serverlösa ETL-pipelines.

Data API-funktionerna finns på många olika programmeringsspråk för att passa din miljö. Som nämnts tidigare finns det en mängd olika användningsfall och möjligheter där du kan använda Data API för att förbättra ditt analytiska arbetsflöde. För att lära dig mer, se Använder Amazon Redshift Data API.


Om författarna

David Zhang är en AWS Solutions Architect som hjälper kunder att designa robusta, skalbara och datadrivna lösningar inom flera branscher. Med en bakgrund inom mjukvaruteknik är David en aktiv ledare och bidragsgivare till AWS initiativ med öppen källkod. Han brinner för att lösa verkliga affärsproblem och strävar kontinuerligt efter att arbeta ur kundens perspektiv.

Bipin Pandey är dataarkitekt på AWS. Han älskar att bygga datasjö och analysplattform för sina kunder. Han brinner för att automatisera och förenkla kundproblem med användning av molnlösningar.

Manash Deb är Senior Analytics Specialist Solutions Architect på AWS. Han har arbetat med att bygga end-to-end datadrivna lösningar i olika databas- och datalagringsteknologier i över 15 år. Han älskar att lära sig ny teknik och att lösa, automatisera och förenkla kundproblem med lättanvända molndatalösningar på AWS.

Bhanu Pittampally är Analytics Specialist Solutions Architect baserad i Dallas. Han är specialiserad på att bygga analytiska lösningar. Hans bakgrund är inom data warehouse – arkitektur, utveckling och administration. Han har arbetat med data och analytiskt område i över 13 år. Hans Linkedin-profil är här..

Chao Duan är en mjukvaruutvecklingschef på Amazon Redshift, där han leder utvecklingsteamet med fokus på att möjliggöra självunderhåll och självjustering med omfattande övervakning för Redshift. Chao brinner för att bygga hög tillgänglighet, hög prestanda och kostnadseffektiv databas för att ge kunderna datadrivet beslutsfattande.

Debu Panda, en huvudproduktchef på AWS, är branschledande inom analys-, applikationsplattforms- och databasteknologier och har mer än 25 års erfarenhet av IT-världen.

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

Tidsstämpel:

Mer från AWS