Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Apache Kafka & Kafka Connectを使ったデータ連携パターン(改めETL...
Search
Keigo Suda
November 25, 2016
0
2
Apache Kafka & Kafka Connectを使ったデータ連携パターン(改めETLの実装)
Keigo Suda
November 25, 2016
Tweet
Share
More Decks by Keigo Suda
See All by Keigo Suda
フレームワークを意識させないワークショップづくり
keigosuda
0
300
Professional Serviceという働き方
keigosuda
0
16
パッケージ構成っていつでも悩ましい
keigosuda
0
2
スマートファクトリーを⽀えるIoTインフラをつくった話
keigosuda
0
2
Kafka logをオブジェクトストレージに連携する⽅法まとめ
keigosuda
0
2
20161212jawsbigdata-161214152052.pdf
keigosuda
0
3
基幹業務もHadoopで!!
keigosuda
0
4
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Designing for humans not robots
tammielis
254
26k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
Building an army of robots
kneath
306
46k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Documentation Writing (for coders)
carmenintech
76
5.2k
What's in a price? How to price your products and services
michaelherold
246
12k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
How GitHub (no longer) Works
holman
316
140k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
93
Transcript
Apache Kafka & Kafka ConnectΛ ʹͬͨσʔλ࿈ܞύλʔϯ(վΊETLͷ࣮) Future Architect ,Inc Keigo
Suda 2016/11/25 D&S Data Night vol.04
12 ! Kafka ConnectΛETLπʔϧͱͯ͠ར༻͢Δػձ͕͋ͬͨͷͰͦͷࡍʹ ܦݧͨ͠ҎԼʹ͍ͭͯڞ༗(Ұ௨Γ·Γͨ͠) ͍Ͳ͜Ζ (؆୯ʹ)࣮ϙΠϯτ/ϋϚΓͲ͜Ζ ͖ͯ͘
13 ࣗݾհ ! Future Architect ,Inc ਢా ܡޔ (ͩ͢ ͚͍͝)
! ΤϯλʔϓϥΠζͳͱ͜ΖͰେ͖͍σʔλΛѻ͏ࣄΛͯ͠·͢ ! ࠷ۙIoT·ΘΓͷσʔλج൫Λ࡞ͬͯ·͢
14 ຊʹ͍Δલʹ
15 Kafka Connect͝ଘͰ͔͢ʁ
16 ! Kafka ver 0.9͔Βಋೖ͞Εͨ৽ػೳ ! Kafkaͱͷ࿈ܞϑϨʔϜϫʔΫ ! ϓϥΨϒϧͳػ !
ઃఆϑΝΠϧʹΑΔૢ࡞ ! σʔλΛͲ͏ൈ͔͘/ೖΕΔ͔ͷΈ࣮ Kafka Connect ͜͜ͷ෦
17 Connectors https://www.confluent.io/product/connectors/
ͲΕͲΕɺKafka ConnectͰݕࡧͬͱ
None
ͳΜ͔ͩ࿐ࠎʹ͋Ε͚ͩͲɺࢼ͠
21 ใ͕΄΅օແ
22 ! ࠃ֎ɾࠃͱʹར༻ࣄྫগͳ͍ҹ ! υΩϡϝϯτࣗମΠϚΠνɺࡉ͔͍֬ೝιʔεΛ֬ೝ ! ͍Ζ͍ΖͱϓϥάΠϯ͕ެ։͞Ε͖͍ͯͯΔ͕ɺΠϚΠν࣮ํ๏౷ Ұ͕ͱΕ͍ͯͳ͍ײ͡Ͱ͓खຊ͕গͳ͍ Kafka Connectͷݱঢ়(ݸਓతҙݟ)
23 ETLʹ͓͚ΔKakfa Connect(ݸਓతҙݟ) P T // / / AC KM
I M KM
Kafka ConnectͷΩϗϯ
25 http://docs.confluent.io/2.0.0/connect/userguide.html#getting-started Kakfa Connectͷجຊ ͕͜͜Kafka Connect
26 σʔλ࿈ܞݩ σʔλ࿈ܞͷδϣϒ ࣮ࡍͷσʔλ࿈ܞ୯Ґ ࣮ࡍʹσʔλίϐʔΛߦ͏ॲཧ Kakfa Connectͷجຊ http://docs.confluent.io/2.0.0/connect/userguide.html#getting-started
27 Stream & Partition(RDBͷྫ) http://www.slideshare.net/KaufmanNg/data-pipelines-with-kafka-connect
28 σʔλ࿈ܞݩ ࣮ࡍͷσʔλ࿈ܞ୯Ґ ࣮ࡍʹσʔλίϐʔΛߦ͏ॲཧ N:1 Stream & Partition(RDBͷྫ) http://www.slideshare.net/KaufmanNg/data-pipelines-with-kafka-connect
29 σʔλ࿈ܞݩ σʔλ࿈ܞͷδϣϒ ࣮ࡍͷσʔλ࿈ܞ୯Ґ ࣮ࡍʹσʔλίϐʔΛߦ͏ॲཧ Kakfa Connectͷجຊ http://docs.confluent.io/2.0.0/connect/userguide.html#getting-started
30 Worker & Connector http://docs.confluent.io/2.0.0/connect/userguide.html#getting-started
31 ͋ ͋ ͊ ͜ Ε Ҏ ্ ༻ ޠ
Λ ૿ ͢ ͳ ɾ ɾ ɾ CONNECTER WORKER STREAM PARTITION STANDALONE MODE DISTRIBUTED MODE TASK
32 $ bin/connect-standalone.sh config/connect-standalone.properties connector1.properties ࣮ࡍͷར༻(Standalone mode) ! ίϚϯυϥΠϯ͔ΒσʔϞϯͱͯ͠ىಈ !
ҎԼΛىಈ࣌ʹࢦఆ͢Δඞཁ͋Γ ! ࣮ߦϓϩηεͰ͋ΔWorkerͷઃఆϑΝΠϧ ! ࣮ࡍʹར༻͢ΔConnectorಛ༗ͷઃఆϑΝΠϧ Workerઃఆ Connectorઃఆ
33 ઃఆϑΝΠϧͷத name=local-file-source connector.class=FileStreamSource tasks.max=1 file=test.txt topic=connect-test bootstrap.servers=localhost:9092 key.converter=org.apache.kafka.connect.json.JsonConverter value.converter=org.apache.kafka.connect.json.JsonConverter
... Workerઃఆ Connectorઃఆ
࣮
35 ! ϓϥάΠϯ৭ʑͱެ։͞ΕΔΑ͏ʹͳ͖ͬͯͨ ! ͨͩ͠ɺ·ͩ͜Ε͔Βͳײ͡ͳͷͰࣗͰॻ͘ػձଟ͍ ! ࣮ͷओཁͳϙΠϯτͱETLͷੜ͔͠ํʹ͍ͭͯ؆୯ʹ ͔͜͜Βͷͳ͠
36 ! Kafka ConnectSourceॲཧͱSinkॲཧ͕͋Γ·͢ɻ ! Sink/Sourceߟ͑ํಉ͡Ͱ͕͢ɺSinkͷํ্͕࣮গ͠Θ͔Γ͢ ͍ͷͰͪ͜ΒΛྫʹ࣮ʹ͍ͭͯઆ໌͠·͢ɻ Kafka Connectͷ࣮ Source
Sink
37 ! ࠷ݶɺConnector/TaskΛ࣮͢Δ͚ͩͰOK ! ྆ํͱ͢ͰʹAPI͕༻ҙ͞Ε͍ͯΔͷͰதΛຒΊΔ͚ͩͰOK σʔλ࿈ܞͷδϣϒ(͜͜) ࣮ࡍʹσʔλίϐʔΛߦ͏ॲཧ(͜͜) ࣮Օॴ
38 Connector(΄΅ςϯϓϨ)
39 େࣄͳͷ͜͜!!(sourceͷ߹pull) Task
40 ! ࣮ͨ͠TaskͱConnectorΛίϯύΠϧ ! Ϋϥεύε͕௨͍ͬͯΔͱ͜Ζʹஔ͢Δ͚ͩʂ Deploy name=sample-sink connector.class=SampleSinkConnector tasks.max=1 topic=connect-test
ɾɾɾɾ Connectorઃఆ
·ͱΊ
42 ! KafkaͷΈΛ͠Βͳͯ͘Ͱ͖Δ୯७ͳσʔλίϐʔϑΟϧλϦ ϯάΛ؆୯ʹ࣮Ͱ͖Δɻ ! ઃఆϑΝΠϧϕʔεͰͷૢ࡞͕ՄೳͰɺ։ൃऀؒͰͷ࣮ͷόϥ͖ͭΛ ͓͑͞ΒΕΔɻ Kafka Connectͷྑ͍ͱ͜
43 ! ෳࡶͳॲཧͰ͖ͳ͘ͳ͍ͳ͕ɺͦͦใগͳ͍͠ɺ࣮ྫগͳ ͍ͷͰɺجຊιʔεΛ͍ͳ͕Βͷ࣮ʢͩͬͨΒී௨ʹAPIͬͨํ ͕ͤʣ Kafka Connectͷѱ͍ͱ͜
44 ࢦఆͨ͠ΠϯΫϦϝϯτϞʔυΛผ ͋ͱΫΤϦΛΈཱ͍ͯͯΔ͚ͩ Μʁ͜Μͳແअؾʹେৎʁ ࠩөྫ(kafka-connect-jdbc)
45 ! ศརϓϥάΠϯΛ͍͍ͨ࣌ɺ΄ͱΜͲ͕ConfluentͰɺΕͳ͘ Confuluent Platformͷػೳ܈ʹґଘͤ͑͞ΔΛ͑ͳ͍ɻ Kafka Connectͷѱ͍ͱ͜
46 ! KakfaΛհͨ͠୯७ͳσʔλίϐʔʹΉ͍͍ͯΔ(ͱࢥ͏) ! Confluent…. ·ͱΊ