Tietojen arvo on aikaherkkä. Reaaliaikainen käsittely tekee tietoihin perustuvista päätöksistä tarkkoja ja toteutettavissa sekunneissa tai minuuteissa tuntien tai päivien sijaan. Muutostietojen keruu (CDC) tarkoittaa prosessia, jossa tunnistetaan ja tallennetaan tietokannan tietoihin tehdyt muutokset ja toimitetaan sitten muutokset reaaliajassa loppupään järjestelmään. Kaikkien tapahtumien muutosten tallentaminen lähdetietokannassa ja siirtäminen kohteeseen reaaliajassa pitää järjestelmät synkronoituina ja auttaa reaaliaikaisissa analytiikan käyttötapauksissa ja tietokantojen siirtymisessä ilman seisokkeja. Seuraavassa on muutamia CDC:n etuja:
- Se eliminoi joukkolatauksen päivitystarpeen ja hankalat eräikkunat mahdollistamalla asteittaisen latauksen tai reaaliaikaisen datamuutosten suoratoiston kohdetietovarastoon.
- Se varmistaa, että useiden järjestelmien tiedot pysyvät synkronoituna. Tämä on erityisen tärkeää, jos teet aikaherkkiä päätöksiä nopeassa dataympäristössä.
Kafka Connect on Apache Kafkan avoimen lähdekoodin komponentti, joka toimii keskitettynä tietokeskuksena tietojen yksinkertaiseen integrointiin tietokantojen, avainarvovarastojen, hakuindeksien ja tiedostojärjestelmien välillä. The AWS Glue Schema -rekisteri avulla voit keskitetysti löytää, hallita ja kehittää tietovirtaskeemoja. Kafka Connect ja Schema Registry integroituvat kaapatakseen skeeman tiedot liittimistä. Kafka Connect tarjoaa mekanismin tietojen muuntamiseen Kafka Connectin käyttämistä sisäisistä tietotyypeistä tietotyypeiksi, joita edustavat Avro, Protobuf tai JSON Schema. AvroConverter, ProtobufConverter ja JsonSchemaConverter rekisteröivät automaattisesti Kafka-liittimien (lähde) luomat skeemat, jotka tuottavat tietoja Kafkaan. Kafkan dataa kuluttavat liittimet (nielu) vastaanottavat skeematietoja kunkin viestin tietojen lisäksi. Tämän ansiosta nieluliittimet voivat tuntea tietojen rakenteen ja tarjota ominaisuuksia, kuten tietokantataulukkokaavion ylläpitäminen tietoluettelossa.
Viesti osoittaa, kuinka rakentaa päästä päähän CDC käyttämällä Amazon MSK Connect, AWS-hallittu palvelu Kafka Connect -sovellusten ja AWS Glue Schema Registry -rekisterin käyttöönottoon ja suorittamiseen, jonka avulla voit keskitetysti löytää, hallita ja kehittää tietovirtaskeemoja.
Ratkaisun yleiskatsaus
Valmistajan puolella tässä esimerkissä valitsemme MySQL-yhteensopivan Amazon Aurora tietokanta tietolähteenä, ja meillä on a Debezium MySQL-liitin CDC:n suorittamiseen. Debezium-liitin valvoo jatkuvasti tietokantoja ja työntää rivitason muutoksia Kafka-aiheeseen. Liitin hakee skeeman tietokannasta sarjoittaakseen tietueet binäärimuotoon. Jos skeemaa ei vielä ole rekisterissä, se rekisteröidään. Jos skeema on olemassa, mutta serialisaattori käyttää uutta versiota, skeemarekisteri tarkistaa yhteensopivuus tilassa kaaviosta ennen skeeman päivittämistä. Tässä ratkaisussa käytämme taaksepäin yhteensopivuustila. Kaavarekisteri palauttaa virheen, jos skeeman uusi versio ei ole taaksepäin yhteensopiva, ja voimme määrittää Kafka Connectin lähettämään yhteensopimattomia viestejä kuolleiden kirjainten jonoon.
Kuluttajan puolella käytämme an Amazonin yksinkertainen tallennuspalvelu (Amazon S3) pesuallasliitin tietueen sarjoittamiseksi ja Amazon S3:n muutosten tallentamiseen. Rakennamme ja otamme käyttöön Debezium-liittimen ja Amazon S3 -nielun MSK Connectin avulla.
Esimerkkiskeema
Tässä viestissä käytämme seuraavaa kaaviota taulukon ensimmäisenä versiona:
Edellytykset
Ennen kuin määrität MSK-tuottaja- ja kuluttajaliittimet, meidän on ensin määritettävä tietolähde, MSK-klusteri ja uusi skeemarekisteri. Tarjoamme an AWS-pilven muodostuminen malli, jolla luodaan ratkaisua varten tarvittavat tukiresurssit:
- Tietolähteenä MySQL-yhteensopiva Aurora-tietokanta. CDC:n suorittamiseksi otamme binaarisen kirjaamisen käyttöön DB-klusterin parametriryhmä.
- MSK-klusteri. Verkkoyhteyden yksinkertaistamiseksi käytämme samaa VPC:tä Aurora-tietokannassa ja MSK-klusterissa.
- Kaksi skeemarekisteriä viestiavaimen ja viestin arvon skeemojen käsittelemiseksi.
- Yksi S3-ämpäri datanieluna.
- Tätä esittelyä varten tarvitaan MSK Connect -laajennukset ja työntekijämääritykset.
- yksi Amazonin elastinen laskentapilvi (Amazon EC2) -esiintymä tietokantakomentojen suorittamiseen.
Voit määrittää resursseja AWS-tililläsi suorittamalla seuraavat vaiheet AWS-alueella, joka tukee Amazon MSK:ta, MSK Connectia ja AWS Glue Schema Registryä:
- Valita Käynnistä pino:
- Valita seuraava.
- varten Pino nimi, kirjoita sopiva nimi.
- varten Tietokannan salasana, anna tietokannan käyttäjälle haluamasi salasana.
- Säilytä muut arvot oletusarvoina.
- Valita seuraava.
- Valitse seuraavalla sivulla seuraava.
- Tarkista yksityiskohdat viimeisellä sivulla ja valitse Tunnustan, että AWS CloudFormation saattaa luoda IAM-resursseja.
- Valita Luo pino.
Mukautettu laajennus lähde- ja kohdeliittimelle
Mukautettu laajennus on joukko JAR-tiedostoja, jotka sisältävät yhden tai useamman liittimen, muunnoksen tai muuntimen toteutuksen. Amazon MSK asentaa laajennuksen MSK Connect -klusterin työntekijöihin, jossa liitin on käynnissä. Osana tätä demoa käytämme avoimen lähdekoodin lähdeliittimessä Debezium MySQL -liitin JAR:t, ja kohdeliittimenä käytämme Confluent-yhteisön lisensoitua Amazon S3 pesuallasliitin JARs. Molemmille laajennuksille on myös lisätty kirjastot Avro Serialisers ja Deserialisers AWS Glue Schema -rekisteristä. Nämä mukautetut laajennukset on jo luotu osana edellisessä vaiheessa käyttöön otettua CloudFormation-mallia.
Käytä AWS Glue Schema -rekisteriä MSK Connectin Debezium-liittimen kanssa MSK-tuottajana
Otamme ensin käyttöön lähdeliittimen käyttämällä Debezium MySQL -laajennusta tietojen suoratoistamiseen Amazon Aurora MySQL-yhteensopiva versio tietokanta Amazon MSK:lle. Suorita seuraavat vaiheet:
- Amazon MSK -konsolissa navigointiruudun alla MSK Connect, valitse Liittimet.
- Valita Luo liitin.
- Valita Käytä olemassa olevaa mukautettua laajennusta ja valitse sitten mukautettu laajennus, jonka nimi alkaa
msk-blog-debezium-source-plugin
. - Valita seuraava.
- Kirjoita sopiva nimi, esim
debezium-mysql-connector
ja valinnainen kuvaus. - varten Apache Kafka -klusteri, valitse MSK-klusteri ja valitse CloudFormation-mallin luoma klusteri.
- In Liittimen kokoonpano, poista oletusarvot ja käytä seuraavia määritysavain-arvo-pareja ja asianmukaisia arvoja:
- nimi – Liittimelle käytetty nimi.
- tietokanta.isäntänimi – CloudFormation-tulostus kohteelle Tietokannan päätepiste.
- tietokanta.käyttäjä ja tietokanta.salasana – CloudFormation-mallissa välitetyt parametrit.
- database.history.kafka.bootstrap.servers – CloudFormation-tulostus kohteelle Kafka Bootstrap.
- key.converter.region ja value.converter.region – Alueesi.
Jotkut näistä asetuksista ovat yleisiä, ja ne tulisi määrittää mille tahansa liittimelle. Esimerkiksi:
- connector.class on liittimen Java-luokka
- tehtävät.max on tälle liittimelle luotavien tehtävien enimmäismäärä
Jotkut asetukset (database.*
, transforms.*
) ovat erityisiä Debezium MySQL -liittimelle. Viitata Debezium MySQL -lähdeliittimen määritysominaisuudet lisätietoja.
Jotkut asetukset (key.converter.*
ja value.converter.*
) ovat erityisiä Schema Registry -rekisteriä. Käytämme AWSKafkaAvroConverter
mistä AWS Glue Schema -rekisterikirjasto muodonmuuntimena. Määrittääksesi AWSKafkaAvroConverter
, käytämme merkkijonovakion ominaisuuksien arvoa AWSSchemaRegistryConstants luokka:
key.converter
javalue.converter
ohjata Kafkaan kirjoitettavan datan muotoa lähdeliittimiä varten tai luettavan Kafkasta nieluliittimiä varten. KäytämmeAWSKafkaAvroConverter
Avro-muodolle.key.converter.registry.name
javalue.converter.registry.name
määrittää käytettävän skeeman rekisterin.key.converter.compatibility
javalue.converter.compatibility
määritä yhteensopivuusmalli.
Mainita Kafka Connectin käyttäminen AWS Glue Schema Registryn kanssa lisätietoja.
- Seuraavaksi konfiguroimme Liittimen kapasiteetti. Voimme valita Varustettu ja jätä muut ominaisuudet oletusarvoiksi
- varten Työntekijän kokoonpano, valitse mukautettu työntekijäkokoonpano, jonka nimi alkaa
msk-gsr-blog
luotu osana CloudFormation-mallia. - varten Käyttöoikeudet, Käytä AWS-henkilöllisyyden ja käyttöoikeuksien hallinta CloudFormation-mallin luoma rooli (IAM).
MSKConnectRole
. - Valita seuraava.
- varten Turvallisuus, valitse oletusasetukset.
- Valita seuraava.
- varten Tukin toimitusvalitse Toimita Amazon CloudWatch -lokeihin ja selaa CloudFormation-mallin luomaa lokiryhmää (
msk-connector-logs
). - Valita seuraava.
- Tarkista asetukset ja valitse Luo liitin.
Muutaman minuutin kuluttua liitin vaihtaa käynnissä olevaan tilaan.
Käytä AWS Glue Schema -rekisteriä MSK Connectin Confluent S3 -allasliittimen kanssa MSK-kuluttajana
Otamme nieluliittimen käyttöön Confluent S3 -nielulaajennuksella tietojen suoratoistamiseen Amazon MSK:sta Amazon S3:een. Suorita seuraavat vaiheet:
-
- Amazon MSK -konsolissa navigointiruudun alla MSK Connect, valitse Liittimet.
- Valita Luo liitin.
- Valita Käytä olemassa olevaa mukautettua laajennusta ja valitse mukautettu laajennus, jonka nimi alkaa
msk-blog-S3sink-plugin
. - Valita seuraava.
- Kirjoita sopiva nimi, esim
s3-sink-connector
ja valinnainen kuvaus. - varten Apache Kafka -klusteri, valitse MSK-klusteri ja valitse CloudFormation-mallin luoma klusteri.
- In Liittimen kokoonpano, poista annetut oletusarvot ja käytä seuraavia määritysavain-arvo-pareja asianmukaisten arvojen kanssa:
-
- nimi – Sama nimi, jota käytetään liittimelle.
- s3.bucket.name – CloudFormation-tulostus kohteelle Kauhan nimi.
- s3.region, key.converter.region ja value.converter.region – Alueesi.
-
- Seuraavaksi konfiguroimme Liittimen kapasiteetti. Voimme valita Varustettu ja jätä muut ominaisuudet oletusarvoiksi
- varten Työntekijän kokoonpano, valitse mukautettu työntekijäkokoonpano, jonka nimi alkaa
msk-gsr-blog
luotu osana CloudFormation-mallia. - varten Käyttöoikeudet, käytä CloudFormation-mallin luomaa IAM-roolia
MSKConnectRole
. - Valita seuraava.
- varten Turvallisuus, valitse oletusasetukset.
- Valita seuraava.
- varten Tukin toimitusvalitse Toimita Amazon CloudWatch -lokeihin ja selaa CloudFormation-mallin luomaa lokiryhmää
msk-connector-logs
. - Valita seuraava.
- Tarkista asetukset ja valitse Luo liitin.
Muutaman minuutin kuluttua liitin toimii.
Testaa päästä päähän CDC-lokivirtaa
Nyt kun sekä Debezium- että S3-allasliittimet ovat käytössä, testaa päästä päähän CDC suorittamalla seuraavat vaiheet:
- Siirry Amazon EC2 -konsolissa kohtaan Suojausryhmät sivu.
- Valitse suojausryhmä
ClientInstanceSecurityGroup
Ja valitse Muokkaa saapuvia sääntöjä. - Lisää saapuva sääntö, joka sallii SSH-yhteyden paikallisverkosta.
- On instansseja sivulla, valitse esiintymä
ClientInstance
Ja valitse kytkeä. - On EC2 Instance Connect välilehti, valitse kytkeä.
- Varmista, että nykyinen työhakemistosi on
/home/ec2-user
ja siinä on tiedostotcreate_table.sql
,alter_table.sql
,initial_insert.sql
jainsert_data_with_new_column.sql
. - Luo taulukko MySQL-tietokantaan suorittamalla seuraava komento (anna tietokannan isäntänimi CloudFormation-mallin lähdöistä):
- Kun sinua pyydetään antamaan salasana, kirjoita salasana CloudFormation-mallin parametreista.
- Lisää näytetietoja taulukkoon seuraavalla komennolla:
- Kun sinua pyydetään antamaan salasana, kirjoita salasana CloudFormation-mallin parametreista.
- Valitse AWS-liimakonsolista Kaaviorekisterit navigointiruudussa ja valitse sitten schemat.
- Navigoida johonkin
db1.sampledatabase.movies
versio 1 tarkistaaksesi elokuvataulukolle luodun uuden skeeman:
Jokaiselle Kafka-aiheen osiolle luodaan erillinen S3-kansio, johon kirjoitetaan aiheen tiedot.
- Tarkista Amazon S3 -konsolissa, onko Kafka-aiheesi kansioon Parquet-muodossa kirjoitettuja tietoja.
Kaavion evoluutio
Kun alkuperäinen skeema on määritetty, sovellusten on ehkä kehitettävä sitä ajan myötä. Kun näin tapahtuu, loppupään kuluttajille on tärkeää pystyä käsittelemään sekä vanhalla että uudella skeemalla koodattua dataa saumattomasti. Yhteensopivuustilojen avulla voit hallita, miten skeemat voivat kehittyä ajan myötä. Nämä tilat muodostavat sopimuksen dataa tuottavien ja kuluttavien sovellusten välillä. Lisätietoja AWS Glue Schema Registry -rekisterissä olevista yhteensopivuustiloista on kohdassa AWS Glue Schema -rekisteri. Esimerkissämme käytämme taaksepäin kammatavuutta varmistaaksemme, että kuluttajat voivat lukea sekä nykyisen että aiemman malliversion. Suorita seuraavat vaiheet:
- Lisää taulukkoon uusi sarake suorittamalla seuraava komento:
- Lisää uusia tietoja taulukkoon suorittamalla seuraava komento:
- Valitse AWS-liimakonsolista Kaaviorekisterit navigointiruudussa ja valitse sitten schemat.
- Siirry skeemaan
db1.sampledatabase.movies
versio 2 tarkistaaksesi elokuvataulukon elokuville luodun mallin uuden version, mukaan lukien lisäämäsi maasarakkeen:
- Tarkista Amazon S3 -konsolissa, onko Kafka-aiheen kansioon Parquet-muodossa kirjoitettuja tietoja.
Puhdistaa
Voit estää ei-toivotut veloitukset AWS-tililtäsi poistamalla tässä viestissä käyttämäsi AWS-resurssit:
- Siirry Amazon S3 -konsolissa CloudFormation-mallin luomaan S3-alueeseen.
- Valitse kaikki tiedostot ja kansiot ja valitse Poista.
- Kirjoita pysyvästi poista ohjeen mukaan ja valitse Poista objektit.
- Poista luomasi pino AWS CloudFormation -konsolissa.
- Odota, että pinon tila muuttuu DELETE_COMPLETE.
Yhteenveto
Tämä viesti osoitti, kuinka Amazon MSK:ta, MSK Connectia ja AWS Glue Schema Registryä käytetään CDC-lokivirran rakentamiseen ja tietovirtojen skeemojen kehittämiseen liiketoiminnan tarpeiden muuttuessa. Voit käyttää tätä arkkitehtuurimallia muihin tietolähteisiin erilaisilla Kafka-liittimillä. Lisätietoja on osoitteessa MSK Connect -esimerkkejä.
kirjailijasta
Kalyan Janaki on vanhempi Big Data & Analytics -asiantuntija Amazon Web Services -palvelussa. Hän auttaa asiakkaita suunnittelemaan ja rakentamaan erittäin skaalautuvia, tehokkaita ja turvallisia pilvipohjaisia ratkaisuja AWS:lle.
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- Platoblockchain. Web3 Metaverse Intelligence. Tietoa laajennettu. Pääsy tästä.
- Lähde: https://aws.amazon.com/blogs/big-data/build-an-end-to-end-change-data-capture-with-amazon-msk-connect-and-aws-glue-schema-registry/
- :On
- $ YLÖS
- 1
- 10
- 11
- 7
- 8
- a
- pystyy
- Meistä
- pääsy
- Tili
- tarkka
- tunnustaa
- lisä-
- Lisäksi
- Kaikki
- Salliminen
- mahdollistaa
- jo
- Amazon
- Amazon EC2
- Amazon Web Services
- Analytics
- ja
- Apache
- Apache Kafka
- sovellukset
- käyttää
- sopiva
- arkkitehtuuri
- OVAT
- AS
- aamurusko
- automaattisesti
- saatavissa
- AWS
- AWS-pilven muodostuminen
- AWS-liima
- BE
- ennen
- Hyödyt
- välillä
- Iso
- Big Data
- Bootstrap
- rakentaa
- liiketoiminta
- by
- CAN
- kyvyt
- kaapata
- Kaappaaminen
- tapauksissa
- luettelo
- CDC
- keskitetty
- muuttaa
- Muutokset
- maksut
- tarkastaa
- Tarkastukset
- Valita
- luokka
- Cluster
- Sarake
- yhteisö
- yhteensopivuus
- yhteensopiva
- täydellinen
- komponentti
- Laskea
- Konfigurointi
- yhtyviä
- kytkeä
- liitäntä
- Console
- vakio
- kuluttaa
- kuluttaja
- Kuluttajat
- jatkuvasti
- sopimus
- ohjaus
- maa
- luoda
- luotu
- kriittinen
- Nykyinen
- asiakassuhde
- Asiakkaat
- tiedot
- datan integraatio
- data-driven
- tietokanta
- tietokannat
- päivää
- päätökset
- oletusarvo
- oletusarvot
- määritelty
- tuottaa
- esittely
- osoittivat
- osoittaa
- sijoittaa
- käyttöön
- kuvaus
- määränpää
- yksityiskohtainen
- yksityiskohdat
- eri
- löytää
- ei
- Pudota
- kukin
- eliminoi
- mahdollistaa
- päittäin
- varmistaa
- varmistaa
- enter
- ympäristö
- virhe
- erityisesti
- Eetteri (ETH)
- Joka
- kehittää
- esimerkki
- olemassa
- olemassa
- harvat
- Fields
- filee
- Asiakirjat
- lopullinen
- Etunimi
- jälkeen
- varten
- muoto
- muoto
- alkaen
- tuottaa
- syntyy
- Ryhmä
- Ryhmän
- kahva
- Käsittely
- tapahtuu
- Olla
- auttaa
- auttaa
- erittäin
- historia
- isäntä
- TUNTIA
- Miten
- Miten
- HTML
- http
- HTTPS
- Napa
- IAM
- tunnistaminen
- Identiteetti
- täytäntöönpano
- tärkeä
- in
- Mukaan lukien
- indeksit
- tiedot
- ensimmäinen
- asentaa
- esimerkki
- sen sijaan
- yhdistää
- integraatio
- sisäinen
- IT
- Jaava
- jpg
- json
- Kafka
- avain
- Tietää
- jättää
- kirjastot
- Licensed
- pitää
- kuormitus
- lastaus
- paikallinen
- Pitkät
- tehty
- TEE
- Tekeminen
- onnistui
- mestari
- max
- maksimi
- mekanismi
- viesti
- viestien
- ehkä
- pöytäkirja
- malli
- tilat
- näytöt
- lisää
- Elokuvat
- liikkuvat
- moninkertainen
- MySQL
- nimi
- Navigoida
- suunnistus
- Tarve
- tarvitaan
- tarpeet
- verkko
- Uusi
- seuraava
- numero
- of
- Vanha
- on
- ONE
- avoimen lähdekoodin
- Muut
- ulostulo
- sivulla
- paria
- lasi
- parametri
- parametrit
- osa
- Hyväksytty
- Salasana
- Kuvio
- suorittaa
- vakinaisesti
- poimia
- Platon
- Platonin tietotieto
- PlatonData
- kytkeä
- liitännäiset
- Kirje
- estää
- edellinen
- prosessi
- käsittely
- tuottaa
- tuottaja
- ominaisuudet
- toimittaa
- mikäli
- tarjoaa
- Lue
- todellinen
- reaaliaikainen
- vastaanottaa
- ennätys
- asiakirjat
- viittaa
- alue
- ilmoittautua
- kirjattu
- rekisterin
- säilytyspaikka
- edustettuina
- Esittelymateriaalit
- Tuotto
- Rooli
- Sääntö
- ajaa
- juoksu
- sama
- skaalautuva
- saumattomasti
- Haku
- sekuntia
- turvallinen
- turvallisuus
- vanhempi
- sensible
- erillinen
- palvelu
- Palvelut
- setti
- settings
- shouldnt
- Yksinkertainen
- yksinkertaistaa
- ratkaisu
- Ratkaisumme
- jonkin verran
- lähde
- Lähteet
- asiantuntija
- erityinen
- määritelty
- pino
- Aloita
- Tila
- Vaihe
- Askeleet
- Levytila
- verkkokaupasta
- varastot
- virta
- streaming
- puroihin
- rakenne
- sopiva
- Tukea
- Tukee
- synkronointi.
- järjestelmä
- järjestelmät
- taulukko
- Kohde
- tehtävät
- sapluuna
- testi
- että
- -
- Lähde
- Niitä
- Nämä
- aika
- aikaherkkä
- Otsikko
- että
- aihe
- Liiketoimet
- VUORO
- tyypit
- varten
- toivottuja
- päivittäminen
- käyttää
- käyttäjä
- arvo
- arvot
- versio
- verkko
- verkkopalvelut
- joka
- tulee
- ikkunat
- with
- työntekijä
- työntekijöitä
- työskentely
- toimii
- kirjallinen
- Sinun
- zephyrnet