Zephyrnet logo

Paranna tietoarkkitehtuuriasi reaaliaikaisella suoratoistolla Amazon Data Firehosen ja Snowflake | Amazon Web Services

Treffi:

Nykypäivän nopeatempoinen maailma vaatii oikea-aikaisia ​​oivalluksia ja päätöksiä, mikä lisää tiedon suoratoiston merkitystä. Suoratoistodatalla tarkoitetaan dataa, jota luodaan jatkuvasti useista eri lähteistä. Tämän tiedon lähteet, kuten napsautustapahtumat, muutostietojen kaappaus (CDC), sovellus- ja palvelulokit sekä esineiden Internet (IoT) -tietovirrat lisääntyvät. Snowflake tarjoaa kaksi vaihtoehtoa suoratoistodatan tuomiseksi alustalle: Snowpipe ja Snowpipe Streaming. Snowpipe soveltuu tiedostojen käsittelyyn (eräkäyttöön), kuten suurten tiedostojen lataamiseen Amazonin yksinkertainen tallennuspalvelu (Amazon S3) Snowflakeen. Snowpipe Streaming, uudempi ominaisuus, joka julkaistiin maaliskuussa 2023, sopii rivijoukon käsittelyyn (suoratoistoon), kuten jatkuvan datavirran lataamiseen Amazon Kinesis -tietovirrat or Amazon hallinnoi suoratoistoa Apache Kafkalle (Amazon MSK).

Ennen Snowpipe-suoratoistoa AWS-asiakkaat käyttivät Snowpipeä molemmissa käyttötapauksissa: tiedostojen käsittelyssä ja rivijoukon käsittelyssä. Ensin syötit suoratoistodataa Kinesis Data Streamsille tai Amazon MSK:lle, sitten käytit Amazon Data Firehosea streamien yhdistämiseen ja kirjoittamiseen Amazon S3:een, minkä jälkeen käytit Snowpipeä tietojen lataamiseen Snowflakeen. Tämä monivaiheinen prosessi voi kuitenkin aiheuttaa jopa tunnin viiveitä ennen kuin tiedot ovat saatavilla analysoitavaksi Snowflakessa. Lisäksi se on kallista, varsinkin kun sinulla on pieniä tiedostoja, jotka Snowpipen on ladattava Snowflake-asiakasklusteriin.

Tämän ongelman ratkaisemiseksi Amazon Data Firehose integroituu nyt Snowpipe Streamingiin, jonka avulla voit kaapata, muuntaa ja toimittaa tietovirtoja Kinesis Data Streamsistä, Amazon MSK:sta ja Firehose Direct PUTista Snowflakeen sekunneissa edullisesti. Muutamalla Amazon Data Firehose -konsolin napsautuksella voit määrittää Firehose-streamin toimittamaan tietoja Snowflakelle. Amazon Data Firehosen käyttämiseen ei liity sitoumuksia tai ennakkoinvestointeja, ja maksat vain suoratoistetusta datamäärästä.

Joitakin Amazon Data Firehosen tärkeimpiä ominaisuuksia ovat:

  • Täysin hallittu palvelimeton palvelu – Sinun ei tarvitse hallita resursseja, ja Amazon Data Firehose skaalautuu automaattisesti vastaamaan tietolähteesi suorituskykyä ilman jatkuvaa hallintaa.
  • Helppokäyttöinen ilman koodia – Hakemuksia ei tarvitse kirjoittaa.
  • Reaaliaikainen tiedonsiirto – Saat tiedot kohteisiin nopeasti ja tehokkaasti sekunneissa.
  • Integrointi yli 20 AWS-palvelun kanssa – Saumaton integrointi on saatavilla monille AWS-palveluille, kuten Kinesis Data Streamsille, Amazon MSK:lle, Amazon VPC Flow Logsille, AWS WAF -lokeille, Amazon CloudWatch Logsille, Amazon EventBridgelle, AWS IoT Corelle ja muille.
  • Pay-as-you-go -malli – Maksat vain Amazon Data Firehosen käsittelemästä tietomäärästä.
  • Liitännät – Amazon Data Firehose voi muodostaa yhteyden julkisiin tai yksityisiin aliverkkoihin VPC:ssäsi.

Tämä viesti selittää, kuinka voit tuoda suoratoistodataa AWS:stä Snowflakeen muutamassa sekunnissa edistyneen analytiikan suorittamiseksi. Tutkimme yleisiä arkkitehtuureja ja havainnollistamme, kuinka luodaan pienikoodiinen, palvelimeton ja kustannustehokas ratkaisu matalan viiveen datan suoratoistoon.

Katsaus ratkaisuun

Seuraavat vaiheet toteutetaan ratkaisun siirtämiseksi AWS:stä Snowflakeen:

  1. Luo Snowflake-tietokanta, -skeema ja -taulukko.
  2. Luo Kinesis-tietovirta.
  3. Luo Firehose-toimitusvirta, jonka lähteenä on Kinesis Data Streams ja määränpäänä Snowflake suojatun yksityisen linkin avulla.
  4. Testaa asetuksia luomalla näytevirtatiedot tiedostosta Amazon Kinesis Data Generator (KDG) Firehose-toimitusvirran määränpäänä.
  5. Tee kysely Snowflake-taulukosta vahvistaaksesi Snowflakeen ladatut tiedot.

Ratkaisu on kuvattu seuraavassa arkkitehtuurikaaviossa.

Edellytykset

Sinulla tulee olla seuraavat edellytykset:

Luo Snowflake-tietokanta, -skeema ja -taulukko

Määritä tietosi Snowflakeen suorittamalla seuraavat vaiheet:

  • Kirjaudu sisään Snowflake-tilillesi ja luo tietokanta:
    create database adf_snf;

  • Luo skeema uuteen tietokantaan:
    create schema adf_snf.kds_blog;

  • Luo taulukko uudessa skeemassa:
    create or replace table iot_sensors
    (sensorId number,
    sensorType varchar,
    internetIP varchar,
    connectionTime timestamp_ntz,
    currentTemperature number
    );

Luo Kinesis-tietovirta

Luo datavirtasi suorittamalla seuraavat vaiheet:

  • Valitse Kinesis Data Streams -konsolista Tietovirrat navigointipaneelissa.
  • Valita Luo tietovirta.
  • Kirjoita tietovirran nimi -kohtaan nimi (esim. KDS-Demo-Stream).
  • Jätä loput asetukset oletusarvoiksi.
  • Valitse Luo tietovirta.

Luo Firehose-toimitusvirta

Suorita seuraavat vaiheet luodaksesi Firehose-toimitusvirran, jonka lähteenä on Kinesis Data Streams ja määränpäänä Snowflake:

  • Valitse Amazon Data Firehose -konsolissa Luo Firehose-stream.
  • varten lähde, valitse Amazon Kinesis -tietovirrat.
  • varten määränpää, valitse Lumihiutale.
  • varten Kinesis-tietovirta, selaa aiemmin luomaasi tietovirtaan.
  • varten Firehose-virran nimi, jätä luotu oletusnimi tai anna haluamasi nimi.
  • Alle Yhteysasetukset, anna seuraavat tiedot yhdistääksesi Amazon Data Firehose Snowflakeen:
    • varten Snowflake-tilin URL-osoite, anna Snowflake-tilisi URL-osoite.
    • varten käyttäjä, kirjoita edellytyksiin luotu käyttäjänimi.
    • varten Yksityinen avain, kirjoita edellytyksissä luotu yksityinen avain. Varmista, että yksityinen avain on PKCS8-muodossa. Älä sisällytä PEM:ää header-BEGIN etuliite ja footer-END pääte osana yksityistä avainta. Jos avain on jaettu useille riveille, poista rivinvaihdot.
    • varten Roolivalitse Käytä mukautettua Lumihiutale-roolia ja anna IAM-rooli, jolla on oikeus kirjoittaa tietokantataulukkoon.

Voit muodostaa yhteyden Snowflakeen käyttämällä julkista tai yksityistä yhteyttä. Jos et anna VPC-päätepistettä, oletusyhteystila on julkinen. Jos haluat sallia Firehose-IP-osoitteet Snowflake-verkkokäytännössäsi, katso Valitse kohteeksi lumihiutale. Jos käytät yksityisen linkin URL-osoitetta, anna VPCE-tunnus käyttämällä SYSTEM$GET_PRIVATELINK_CONFIG:

select SYSTEM$GET_PRIVATELINK_CONFIG();

Tämä toiminto palauttaa JSON-esityksen Snowflake-tilin tiedoista, jotka ovat tarpeen lumihiutale-palvelun yksityisen yhteyden itsepalvelumäärityksen helpottamiseksi, kuten seuraavassa kuvakaappauksessa näkyy.

  • Tässä viestissä käytämme yksityistä linkkiä, joten VPCE ID, anna VPCE-tunnus.
  • Alle Tietokannan kokoonpanoasetukset, anna Snowflake-tietokanta, skeema ja taulukoiden nimet.
  • In Varmistusasetukset osa, varten S3 varakauha, syötä luomasi segmentti osana edellytyksiä.
  • Valita Luo Firehose-stream.

Vaihtoehtoisesti voit käyttää AWS-pilven muodostuminen mallia Firehose-toimitusvirran luomiseen käyttämällä Snowflakea määränpäänä Amazon Data Firehose -konsolin sijaan.

Jos haluat käyttää CloudFormation-pinoa, valitse

BDB-4100-CFN-Launch-Stack

Luo näytevirtatietoja
Luo näytevirtatiedot KDG:stä luomallasi Kinesis-datavirralla:

{ 
"sensorId": {{random.number(999999999)}}, 
"sensorType": "{{random.arrayElement( ["Thermostat","SmartWaterHeater","HVACTemperatureSensor","WaterPurifier"] )}}", 
"internetIP": "{{internet.ip}}", 
"connectionTime": "{{date.now("YYYY-MM-DDTHH:m:ss")}}", 
"currentTemperature": {{random.number({"min":10,"max":150})}} 
}

Kysy Snowflake-taulukosta

Kysy Snowflake-taulukosta:

select * from adf_snf.kds_blog.iot_sensors;

Voit varmistaa, että KDG:n luomat tiedot, jotka lähetettiin Kinesis Data Streamsille, ladataan Snowflake-taulukkoon Amazon Data Firehosen kautta.

Ongelmien karttoittaminen

Jos tietoja ei ladata Kinesis Data Steamiin sen jälkeen, kun KDG on lähettänyt tiedot Firehose-toimitusvirtaan, päivitä ja varmista, että olet kirjautunut sisään KDG:hen.

Jos teit muutoksia Snowflake-kohdetaulukon määritelmään, luo Firehose-toimitusvirta uudelleen.

Puhdistaa

Vältä tulevia maksuja poistamalla osana tätä harjoitusta luomasi resurssit, jos et aio käyttää niitä jatkossa.

Yhteenveto

Amazon Data Firehose tarjoaa suoraviivaisen tavan toimittaa tietoja Snowpipe Streamingiin, mikä mahdollistaa kustannussäästöjen ja viiveen pienentämisen sekunteihin. Jos haluat kokeilla Amazon Kinesis Firehose with Snowflakea, katso Amazon Data Firehose with Snowflake kohdelaboratoriosta.


Tietoja Tekijät

Vaihda Bandla on vanhempi ratkaisuarkkitehti AWS Analytics Specialist SA -tiimissä. Swapnalla on intohimo ymmärtää asiakkaiden data- ja analytiikkatarpeita ja antaa heille mahdollisuus kehittää pilvipohjaisia ​​hyvin suunniteltuja ratkaisuja. Työn ulkopuolella hän viettää mielellään aikaa perheensä kanssa.

Mostafa Mansour on päätuotepäällikkö – tekninen Amazon Web Services -palvelussa, jossa hän työskentelee Amazon Kinesis Data Firehosen parissa. Hän on erikoistunut kehittämään intuitiivisia tuotekokemuksia, jotka ratkaisevat asiakkaiden monimutkaisia ​​haasteita laajasti. Kun hän ei ole ahkera Amazon Kinesis Data Firehose -työskentelyssä, löydät todennäköisesti Mostafan squash-kentältä, jossa hän rakastaa haastajia vastaan ​​​​ja viimeistellä dropshottejaan.

Bosco Albuquerque on AWS:n vanhempi kumppaniratkaisuarkkitehti ja hänellä on yli 20 vuoden kokemus tietokanta- ja analytiikkatuotteiden parissa työskentelystä yritystietokantatoimittajilta ja pilvipalveluntarjoajilta. Hän on auttanut teknologiayrityksiä suunnittelemaan ja toteuttamaan data-analytiikkaratkaisuja ja -tuotteita.

spot_img

Uusin älykkyys

spot_img