Zephyrnet-logo

Gebruik Snowflake met Amazon MWAA om datapijplijnen te orkestreren | Amazon-webservices

Datum:

Deze blogpost is geschreven in samenwerking met James Sun van Snowflake.

Klanten vertrouwen op gegevens uit verschillende bronnen, zoals mobiele applicaties, clickstream-gebeurtenissen van websites, historische gegevens en meer, om betekenisvolle patronen af ​​te leiden om hun producten, diensten en processen te optimaliseren. Met een datapijplijn, een reeks taken die worden gebruikt om de verplaatsing en transformatie van gegevens tussen verschillende systemen te automatiseren, kunt u de tijd en moeite verminderen die nodig is om inzichten uit de gegevens te verkrijgen. Apache-luchtstroom en Sneeuwvlok zijn uitgegroeid tot krachtige technologieën voor gegevensbeheer en -analyse.

Door Amazon beheerde workflows voor Apache Airflow (Amazon MWAA) is een beheerde workfloworkestratieservice voor Apache Airflow die u kunt gebruiken om end-to-end datapijplijnen in de cloud op schaal in te stellen en te exploiteren. De Snowflake Data Cloud biedt één enkele bron van waarheid voor al uw gegevensbehoeften en stelt uw organisaties in staat grote hoeveelheden gegevens op te slaan, te analyseren en te delen. De open-sourcegemeenschap van Apache Airflow biedt meer dan 1,000 vooraf gebouwde operators (plug-ins die verbindingen met services vereenvoudigen) waarmee Apache Airflow datapijplijnen kan bouwen.

In dit bericht bieden we een overzicht van het orkestreren van uw datapijplijn met behulp van Sneeuwvlokoperatoren in uw Amazon MWAA-omgeving. We definiëren de stappen die nodig zijn om de integratie tussen Amazon MWAA en Snowflake op te zetten. De oplossing biedt een end-to-end geautomatiseerde workflow die gegevensopname, transformatie, analyse en consumptie omvat.

Overzicht van de oplossing

Het volgende diagram illustreert onze oplossingsarchitectuur.

Overzicht oplossingen

De gegevens die worden gebruikt voor transformatie en analyse zijn gebaseerd op openbaar beschikbare gegevens New York Citi Bike-gegevensset. De gegevens (gecomprimeerde bestanden), waaronder demografische gegevens van de rijder en ritgegevens, worden gekopieerd van de openbare Citi Bike Amazon eenvoudige opslagservice (Amazon S3) bucket in uw AWS-account. Gegevens worden gedecomprimeerd en opgeslagen in een andere S3-bucket (getransformeerde gegevens kunnen worden opgeslagen in dezelfde S3-bucket waar de gegevens zijn opgenomen, maar voor de eenvoud gebruiken we twee afzonderlijke S3-buckets). De getransformeerde gegevens worden vervolgens toegankelijk gemaakt voor Snowflake voor data-analyse. De uitvoer van de opgevraagde gegevens wordt gepubliceerd naar Amazon eenvoudige meldingsservice (Amazon SNS) voor consumptie.

Amazon MWAA gebruikt een gerichte acyclische grafiek (DAG) om de werkstromen uit te voeren. In dit bericht voeren we drie DAG's uit:

Het volgende diagram illustreert deze workflow.

DAG-workflow uitvoeren

Zie de GitHub repo voor de DAG's en andere bestanden die verband houden met de post.

Merk op dat we in dit bericht een DAG gebruiken om een ​​Snowflake-verbinding te maken, maar je kunt ook de Snowflake-verbinding maken met behulp van de Luchtstroom-UI of CLI.

Voorwaarden

Om de oplossing te kunnen implementeren, moet u basiskennis hebben van Snowflake en Amazon MWAA en aan de volgende vereisten voldoen:

  • Een AWS-account in een AWS-regio waar Amazon MWAA wordt ondersteund.
  • Een Snowflake-account met beheerdersreferenties. Als u nog geen account heeft, kunt u zich aanmelden voor een Gratis proefperiode van 30-dag. Selecteer de Snowflake enterprise-editie voor het AWS Cloud-platform.
  • Toegang tot Amazon MWAA, Secrets Manager en Amazon SNS.
  • In dit bericht gebruiken we twee S3-buckets, genaamd airflow-blog-bucket-ACCOUNT_ID en citibike-tripdata-destination-ACCOUNT_ID. Amazon S3 ondersteunt globale buckets, wat betekent dat elke bucketnaam uniek moet zijn voor alle AWS-accounts in alle regio's binnen een partitie. Als de S3-bucketnaam al in gebruik is, kiest u een andere S3-bucketnaam. Maak de S3-buckets in uw AWS-account. We uploaden inhoud later in de post naar de S3-bucket. Vervangen ACCOUNT_ID met uw eigen AWS-account-ID of een andere unieke identificatie. De details van de bucket zijn als volgt:
    • airflow-blog-bucket-ACCOUNT_ID – De bucket op het hoogste niveau voor Amazon MWAA-gerelateerde bestanden.
    • airflow-blog-bucket-ACCOUNT_ID/requirements – De emmer die wordt gebruikt voor het opbergen van de requirements.txt bestand dat nodig is om Amazon MWAA te implementeren.
    • airflow-blog-bucket-ACCOUNT_ID/dags – De bucked die wordt gebruikt voor het opslaan van de DAG-bestanden om workflows uit te voeren in Amazon MWAA.
    • airflow-blog-bucket-ACCOUNT_ID/dags/mwaa_snowflake_queries – De bucket die wordt gebruikt voor het opslaan van de Snowflake SQL-query's.
    • citibike-tripdata-bestemming-ACCOUNT_ID – De bucket die wordt gebruikt voor het opslaan van de getransformeerde gegevensset.

Vervang bij het implementeren van de oplossing in dit bericht de verwijzingen naar airflow-blog-bucket-ACCOUNT_ID en citibike-tripdata-destination-ACCOUNT_ID met de namen van uw eigen S3-emmers.

Stel de Amazon MWAA-omgeving in

Eerst jij creëer een Amazon MWAA-omgeving. Voordat u de omgeving implementeert, uploadt u het eisen bestand naar de airflow-blog-bucket-ACCOUNT_ID/requirements S3 emmer. Het vereistenbestand is gebaseerd op Amazon MWAA versie 2.6.3. Als je test op een andere Amazon MWAA-versie, het eisenbestand dienovereenkomstig bijwerken.

Voer de volgende stappen uit om de omgeving in te stellen:

  1. Kies op de Amazon MWAA-console: Creëer omgeving.
  2. Geef een naam naar keuze op voor de omgeving.
  3. Kies Airflow-versie 2.6.3.
  4. Voor de S3-bucket voert u het pad van uw bucket in (s3:// airflow-blog-bucket-ACCOUNT_ID).
  5. Voor de DAGs-map voert u het DAGs-mappad in (s3:// airflow-blog-bucket-ACCOUNT_ID/dags).
  6. Voor het vereistenbestand voert u het pad van het vereistenbestand in (s3:// airflow-blog-bucket-ACCOUNT_ID/ requirements/requirements.txt).
  7. Kies Volgende.
  8. Onder Netwerken, kies uw bestaande VPC of kies MWAA VPC maken.
  9. Onder Toegang tot webserver, kiezen Openbaar netwerk.
  10. Onder Beveiligingsgroepen, vertrekken Maak een nieuwe beveiligingsgroep gekozen.
  11. Voor de Omgeving klasse, Encryptie en Monitoren secties, laat alle waarden standaard staan.
  12. In het Configuratieopties voor de luchtstroom sectie, kies Voeg aangepaste configuratiewaarde toe en configureer twee waarden:
    1. Zet de Configuratie optie naar secrets.backend en Aangepaste waarde naar airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend.
    2. Zet de Configuratie optie naar secrets.backend_kwargs en Aangepaste waarde naar {"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}.                      Configuratieopties voor geheime manager
  13. In het machtigingen sectie, laat de standaardinstellingen staan ​​en kies Maak een nieuwe rol.
  14. Kies Volgende.
  15. Wanneer de Amazon MWAA-omgeving beschikbaar is, wijst u S3-bucketmachtigingen toe aan de AWS Identiteits- en toegangsbeheer (IAM) uitvoeringsrol (gemaakt tijdens de Amazon MWAA-installatie).

MWAA-uitvoeringsrol
Hierdoor wordt u doorverwezen naar de aangemaakte uitvoeringsrol op de IAM-console.

Voor testdoeleinden kunt u kiezen Machtigingen toevoegen en voeg het beheerde toe AmazonS3FullAccess beleid voor de gebruiker in plaats van beperkte toegang te bieden. Voor dit bericht bieden we alleen de vereiste toegang tot de S3-buckets.

  1. Kies in het vervolgkeuzemenu Inline beleid maken.
  2. Voor Selecteer Service, kiezen S3.
  3. Onder Toegangsniveau, specificeer het volgende:
    1. Uitvouwen Lijstniveau en selecteer ListBucket.
    2. Uitvouwen Niveau lezen en selecteer GetObject.
    3. Uitvouwen Schrijf niveau en selecteer PutObject.
  4. Onder Resources, kiezen ARN toevoegen.
  5. Op de Tekst tabblad, geef de volgende ARN's op voor toegang tot de S3-bucket:
    1. arn:aws:s3:::airflow-blog-bucket-ACCOUNT_ID (gebruik je eigen emmer).
    2. arn:aws:s3:::citibike-tripdata-destination-ACCOUNT_ID (gebruik je eigen emmer).
    3. arn:aws:s3:::tripdata (dit is de openbare S3-bucket waarin de Citi Bike-dataset is opgeslagen; gebruik de ARN zoals hier gespecificeerd).
  6. Onder Resources, kiezen ARN toevoegen.
  7. Op de Tekst tabblad, geef de volgende ARN's op voor toegang tot de S3-bucket:
    1. arn:aws:s3:::airflow-blog-bucket-ACCOUNT_ID/* (zorg ervoor dat u het sterretje vermeldt).
    2. arn:aws:s3:::citibike-tripdata-destination-ACCOUNT_ID /*.
    3. arn:aws:s3:::tripdata/* (dit is de openbare S3-bucket waar de Citi Bike-dataset is opgeslagen, gebruik de ARN zoals hier gespecificeerd).
  8. Kies Volgende.
  9. Voor Beleidsnaam, ga naar binnen S3ReadWrite.
  10. Kies Maak beleid.
  11. Tenslotte geef Amazon MWAA toestemming om toegang te krijgen tot de geheime sleutels van Secrets Manager.

Deze stap biedt de Amazon MWAA-uitvoeringsrol voor uw Amazon MWAA-omgeving leestoegang tot de geheime sleutel in Secrets Manager.

De uitvoerende rol moet het beleid hebben MWAA-Execution-Policy*, S3ReadWrite en SecretsManagerReadWrite eraan gehecht.

Beleid voor uitvoeringsrollen van MWAA

Wanneer de Amazon MWAA-omgeving beschikbaar is, kunt u zich vanaf de Amazon MWAA-console aanmelden bij de Airflow UI via de link voor Open de luchtstroom-UI.

Toegang tot de luchtstroom-UI

Stel een SNS-onderwerp en abonnement in

Volgende jij maak een SNS-onderwerp en voeg een toe abonnement naar het onderwerp. Voer de volgende stappen uit:

  1. Kies op de Amazon SNS-console onderwerpen vanuit het navigatievenster.
  2. Kies Maak een onderwerp.
  3. Voor Onderwerptype, kiezen Standaard.
  4. Voor Naam, ga naar binnen mwaa_snowflake.
  5. Laat de rest standaard staan.
  6. Nadat u het onderwerp hebt gemaakt, navigeert u naar de Abonnementen tab en kies Maak een abonnement aan.
    SNS-onderwerp
  7. Voor Onderwerp ARN, kiezen mwaa_snowflake.
  8. Stel het protocol in op E-mail.
  9. Voor Endpoint, voer uw e-mailadres in (u ontvangt een melding in uw e-mail om het abonnement te accepteren).

Standaard kan alleen de eigenaar van het onderwerp het onderwerp publiceren en erop abonneren. U moet dus het Amazon MWAA-toegangsbeleid voor de uitvoeringsrol aanpassen om Amazon SNS-toegang toe te staan.

  1. Navigeer op de IAM-console naar de uitvoeringsrol die u eerder hebt gemaakt.
  2. Kies in het vervolgkeuzemenu Inline beleid maken.
    MWAA-uitvoeringsrol SNS-beleid
  3. Voor Select Service, kiezen SNS.
  4. Onder Acties, uitbreiden Toegangsniveau voor schrijven en selecteer Publiceer.
  5. Onder Resources, kiezen ARN toevoegen.
  6. Op de Tekst tabblad, specificeer de ARN arn:aws:sns:<<region>>:<<our_account_ID>>:mwaa_snowflake.
  7. Kies Volgende.
  8. Voor Beleidsnaam, ga naar binnen SNSPublishOnly.
  9. Kies Maak beleid.

Configureer een Secrets Manager-geheim

Vervolgens hebben we Secrets Manager ingesteld, een ondersteunde alternatieve database voor het opslaan van Snowflake-verbindingsinformatie en inloggegevens.

Om de verbindingsreeks te maken, zijn de Snowflake-host en accountnaam vereist. Log in op uw Snowflake-account en onder de werkbladen menu, kies het plusteken en selecteer SQL-werkblad. Voer met behulp van het werkblad de volgende SQL-opdrachten uit om de host- en accountnaam te vinden.

Voer de volgende query uit voor de hostnaam:

WITH HOSTLIST AS (SELECT * FROM TABLE(FLATTEN(INPUT => PARSE_JSON(SYSTEM$allowlist()))))
SELECT REPLACE(VALUE:host,'"','') AS HOST
FROM HOSTLIST
WHERE VALUE:type = 'SNOWFLAKE_DEPLOYMENT_REGIONLESS';

Voer de volgende query uit voor de accountnaam:

WITH HOSTLIST AS (SELECT * FROM TABLE(FLATTEN(INPUT => PARSE_JSON(SYSTEM$allowlist()))))
SELECT REPLACE(VALUE:host,'.snowflakecomputing.com','') AS ACCOUNT
FROM HOSTLIST
WHERE VALUE:type = 'SNOWFLAKE_DEPLOYMENT';

Vervolgens configureren we het geheim in Secrets Manager.

  1. Kies op de Secrets Manager-console Bewaar een nieuw geheim.
  2. Voor Geheim type, kiezen Ander soort geheim.
  3. Onder Sleutel/waarde-paren, kies de Platte tekst Tab.
  4. Voer in het tekstveld de volgende code in en wijzig de tekenreeks zodat deze uw Snowflake-accountgegevens weergeeft:

{"host": "<<snowflake_host_name>>", "account":"<<snowflake_account_name>>","user":"<<snowflake_username>>","password":"<<snowflake_password>>","schema":"mwaa_schema","database":"mwaa_db","role":"accountadmin","warehouse":"dev_wh"}

Bijvoorbeeld:

{"host": "xxxxxx.snowflakecomputing.com", "account":"xxxxxx" ,"user":"xxxxx","password":"*****","schema":"mwaa_schema","database":"mwaa_db", "role":"accountadmin","warehouse":"dev_wh"}

De waarden voor de databasenaam, schemanaam en rol moeten zijn zoals eerder vermeld. Het account, de host, de gebruiker, het wachtwoord en het magazijn kunnen verschillen, afhankelijk van uw instellingen.

Geheime informatie

Kies Volgende.

  1. Voor Geheime naam, ga naar binnen airflow/connections/snowflake_accountadmin.
  2. Laat alle andere waarden standaard staan ​​en kies Volgende.
  3. Kies Shop.

Noteer de regio waarin het geheim is gemaakt Geheim ARN. We definiëren het later als een variabele in de Airflow-gebruikersinterface.

Configureer Snowflake-toegangsrechten en IAM-rol

Log vervolgens in op uw Snowflake-account. Zorg ervoor dat het account dat u gebruikt accountbeheerderstoegang heeft. Maak een SQL-werkblad. Maak onder het werkblad een magazijn met de naam dev_wh.

Het volgende is een voorbeeld van een SQL-opdracht:

CREATE OR REPLACE WAREHOUSE dev_wh WITH WAREHOUSE_SIZE = 'xsmall' AUTO_SUSPEND = 60 INITIALLY_SUSPENDED = true AUTO_RESUME = true MIN_CLUSTER_COUNT = 1 MAX_CLUSTER_COUNT = 5;

Om ervoor te zorgen dat Snowflake gegevens kan lezen van en schrijven naar een S3-bucket waarnaar wordt verwezen in een externe (S3-bucket) fase, moet een opslag integratie Is benodigd. Volg de stappen die zijn gedefinieerd in Optie 1: een integratie van sneeuwvlokopslag configureren om toegang te krijgen tot Amazon S3(voer alleen stap 1 en 2 uit, zoals beschreven in dit gedeelte).

Configureer toegangsrechten voor de S3-bucket

Bij het maken van het IAM-beleid moet a voorbeeldbeleidsdocumentcode is nodig (zie de volgende code), waardoor Snowflake de vereiste machtigingen krijgt om gegevens te laden of te verwijderen met behulp van een enkel bucket- en mappad. De bucketnaam die in dit bericht wordt gebruikt, is citibike-tripdata-destination-ACCOUNT_ID. U moet deze aanpassen zodat deze uw bucketnaam weergeeft.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion", "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": "arn:aws:s3::: citibike-tripdata-destination-ACCOUNT_ID/*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::citibike-tripdata-destination-ACCOUNT_ID" } ]
}

Maak de IAM-rol aan

Vervolgens maak je de IAM-rol om rechten te verlenen op de S3-bucket die uw gegevensbestanden bevat. Na het maken registreert u de Rol ARN waarde op de roloverzichtspagina.

Sneeuwvlok IAM-rol

Configureer variabelen

Configureer ten slotte de variabelen waartoe de DAG's in Airflow toegang zullen hebben. Log in op de Airflow-gebruikersinterface en op de beheerder menu, kies Variabelen en het plusteken.

Variabelen van de luchtstroom

Voeg vier variabelen toe met de volgende sleutel/waarde-paren:

  • sleutel aws_role_arn met waarde <<snowflake_aws_role_arn>> (de ARN voor de rol mysnowflakerole eerder opgemerkt)
  • sleutel destination_bucket met waarde <<bucket_name>> (voor dit bericht de bucket die wordt gebruikt in citibike-tripdata-destination-ACCOUNT_ID)
  • sleutel target_sns_arn met waarde <<sns_Arn>> (het SNS-onderwerp in uw account)
  • sleutel sec_key_region met waarde <<region_of_secret_deployment>> (de regio waar het geheim in Secrets Manager is gemaakt)

De volgende schermafbeelding illustreert waar u het SNS-onderwerp ARN kunt vinden.

SNS onderwerp ARN

In de Airflow-gebruikersinterface zijn nu de variabelen gedefinieerd, waarnaar door de DAG's wordt verwezen.

Lijst met luchtstroomvariabelen

Gefeliciteerd, u heeft alle configuratiestappen voltooid.

Voer de DAG uit

Laten we eens kijken hoe we de DAG's kunnen uitvoeren. Om samen te vatten:

  • DAG1 (create_snowflake_connection_blog.py) – Creëert de Snowflake-verbinding in Apache Airflow. Deze verbinding wordt gebruikt om te authenticeren met Snowflake. De Snowflake-verbindingsreeks wordt opgeslagen in Secrets Manager, waarnaar wordt verwezen in het DAG-bestand.
  • DAG2 (create-snowflake_initial-setup_blog.py) – Creëert de database, het schema, de opslagintegratie en het podium in Snowflake.
  • DAG3 (run_mwaa_datapipeline_blog.py) – Voert de gegevenspijplijn uit, die bestanden uit de openbare S3-bronbucket uitpakt en naar de S3-doelbucket kopieert. De volgende taak maakt een tabel in Snowflake om de gegevens op te slaan. Vervolgens worden de gegevens van de doel-S3-bucket naar de tabel gekopieerd met behulp van een Snowflake-fase. Nadat de gegevens succesvol zijn gekopieerd, wordt er een weergave aangemaakt in Snowflake, waarop de SQL-query's worden uitgevoerd.

Voer de volgende stappen uit om de DAG's uit te voeren:

  1. Upload de DAG's naar de S3-bak airflow-blog-bucket-ACCOUNT_ID/dags.
  2. Upload de SQL-query bestanden naar de S3-bucket airflow-blog-bucket-ACCOUNT_ID/dags/mwaa_snowflake_queries.
  3. Meld u aan bij de Apache Airflow-gebruikersinterface.
  4. Zoek DAG1 (create_snowflake_connection_blog), pauzeer het en kies het afspeelpictogram om het uit te voeren.

U kunt de runstatus van de DAG bekijken met behulp van de Raster or Diagram bekijken in de Airflow-gebruikersinterface.

Dag1 hardlopen

Nadat DAG1 is uitgevoerd, wordt de Snowflake-verbinding uitgevoerd snowflake_conn_accountadmin wordt gemaakt op de beheerder, aansluitingen menu.

  1. Lokaliseer en voer DAG2 uit (create-snowflake_initial-setup_blog).

Dag2 hardlopen

Nadat DAG2 is uitgevoerd, worden de volgende objecten gemaakt in Snowflake:

  • De database mwaa_db
  • het schema mwaa_schema
  • De opslagintegratie mwaa_citibike_storage_int
  • Het podium mwaa_citibike_stg

Voordat de laatste DAG wordt uitgevoerd, moet de vertrouwensrelatie voor de IAM-gebruiker worden bijgewerkt.

  1. Meld u aan bij uw Snowflake-account met de inloggegevens van uw beheerdersaccount.
  2. Open uw eerder gemaakte SQL-werkblad en voer de volgende opdracht uit:
DESC INTEGRATION mwaa_citibike_storage_int;

mwaa_citibike_storage_int is de naam van de integratie die in de vorige stap door de DAG2 is gemaakt.

Noteer uit de uitvoer de eigenschapswaarde van de volgende twee eigenschappen:

  • OPSLAG_AWS_IAM_USER_ARN – De IAM-gebruiker die voor uw Snowflake-account is aangemaakt.
  • OPSLAG_AWS_EXTERNAL_ID – De externe ID die nodig is om een ​​vertrouwensrelatie tot stand te brengen.

Nu verlenen we de Snowflake IAM-gebruikersrechten voor toegang tot bucket-objecten.

  1. Kies op de IAM-console rollen in het navigatievenster.
  2. Kies de rol mysnowflakerole.
  3. Op de Vertrouwensrelaties tabblad, kies Vertrouwensrelatie bewerken.
  4. Wijzig het beleidsdocument met de DESC STORAGE INTEGRATION uitvoerwaarden die u hebt geregistreerd. Bijvoorbeeld:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::5xxxxxxxx:user/mgm4-s- ssca0079" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "AWSPARTNER_SFCRole=4_vsarJrupIjjJh77J9Nxxxx/j98=" } } } ]
}

De AWS-rol ARN en ExternalId zal voor uw omgeving anders zijn, afhankelijk van de uitvoer van het DESC STORAGE INTEGRATION vraag

vertrouwensrelatie

  1. Lokaliseer en voer de laatste DAG uit (run_mwaa_datapipeline_blog).

Aan het einde van de DAG-run zijn de gegevens gereed voor bevraging. In dit voorbeeld wordt de zoekopdracht (het vinden van de bovenste start- en bestemmingsstations) uitgevoerd als onderdeel van de DAG en kan de uitvoer worden bekeken vanuit de Airflow XCOM's UI.

Xcom's

In de DAG-run wordt de uitvoer ook gepubliceerd naar Amazon SNS en op basis van het abonnement wordt er een e-mailmelding verzonden met de query-uitvoer.

E-mail

Een andere methode om de resultaten te visualiseren is rechtstreeks vanuit de Snowflake-console met behulp van het Snowflake-werkblad. Hier volgt een voorbeeldquery:

SELECT START_STATION_NAME,
COUNT(START_STATION_NAME) C FROM MWAA_DB.MWAA_SCHEMA.CITIBIKE_VW GROUP BY START_STATION_NAME ORDER BY C DESC LIMIT 10;

Sneeuwvlok visueel

Er zijn verschillende manieren om de output te visualiseren op basis van uw gebruiksscenario.

Zoals we hebben opgemerkt, hoeven DAG1 en DAG2 slechts één keer te worden uitgevoerd om de Amazon MWAA-verbinding en Snowflake-objecten in te stellen. DAG3 kan zijn gepland wekelijks of maandelijks uit te voeren. Met deze oplossing hoeft de gebruiker die de gegevens onderzoekt niet in te loggen op Amazon MWAA of Snowflake. U kunt een geautomatiseerde workflow laten activeren volgens een schema dat de nieuwste gegevens uit de Citi Bike-dataset opneemt en de beste start- en bestemmingsstations voor de gegeven dataset levert.

Opruimen

Om toekomstige kosten te voorkomen, verwijdert u de AWS-bronnen (IAM-gebruikers en -rollen, Secrets Manager-geheimen, Amazon MWAA-omgeving, SNS-onderwerpen en abonnementen, S3-buckets) en Snowflake-bronnen (database, fase, opslagintegratie, weergave, tabellen) die als onderdeel zijn gemaakt van dit bericht.

Conclusie

In dit bericht hebben we gedemonstreerd hoe je een Amazon MWAA-verbinding kunt opzetten voor authenticatie bij Snowflake en bij AWS met behulp van AWS-gebruikersgegevens. We hebben een DAG gebruikt om het maken van de Snowflake-objecten, zoals de database, tabellen en het podium, te automatiseren met behulp van SQL-query's. We hebben de datapijplijn ook georkestreerd met behulp van Amazon MWAA, dat taken uitvoerde met betrekking tot datatransformatie en Snowflake-query's. We gebruikten Secrets Manager om Snowflake-verbindingsinformatie en inloggegevens op te slaan en Amazon SNS om de gegevensuitvoer te publiceren voor eindverbruik.

Met deze oplossing beschikt u over een geautomatiseerde end-to-end orkestratie van uw datapijplijn, die opname, transformatie, analyse en dataverbruik omvat.

Raadpleeg de volgende bronnen voor meer informatie:


Over de auteurs

Payal Singh is een Partner Solutions Architect bij Amazon Web Services, gericht op het serverloze platform. Ze is verantwoordelijk voor het helpen van partners en klanten bij het moderniseren en migreren van hun applicaties naar AWS.

James Zon is een Senior Partner Solutions Architect bij Snowflake. Hij werkt actief samen met strategische cloudpartners zoals AWS, ter ondersteuning van product- en service-integraties, evenals de ontwikkeling van gezamenlijke oplossingen. Hij heeft senior technische functies bekleed bij technologiebedrijven zoals EMC, AWS en MapR Technologies. Met meer dan 20 jaar ervaring in opslag en data-analyse, heeft hij ook een doctoraat behaald aan Stanford University.

Bosco Albuquerque is een Sr. Partner Solutions Architect bij AWS en heeft meer dan 20 jaar ervaring in het werken met database- en analyseproducten van leveranciers van bedrijfsdatabases en cloudproviders. Hij heeft technologiebedrijven geholpen bij het ontwerpen en implementeren van oplossingen en producten voor data-analyse.

Manuj Arora is een Sr. Solutions Architect voor strategische accounts in AWS. Hij richt zich op migratie- en moderniseringsmogelijkheden en -aanbiedingen in AWS. Manuj heeft de afgelopen drie jaar als Partner Success Solutions Architect bij AWS gewerkt en samengewerkt met partners als Snowflake om oplossingsblauwdrukken te bouwen die door de klanten worden benut. Buiten zijn werk houdt hij van reizen, tennissen en nieuwe plekken ontdekken met familie en vrienden.

spot_img

Laatste intelligentie

spot_img