Slide 1

Slide 1 text

খӉ஦͸೩͍͑ͯΔ͔ʁ - Azure Cosmos DBΛյͪ͠Όͬͨ - JAZUG Night, 25h Jul 2017 Tatsuya Sato Rakuten, Inc.

Slide 2

Slide 2 text

2 ࠤ౻ཽ໵ ৽نαʔϏε։ൃ෦ Ruby, Agile, Azure

Slide 3

Slide 3 text

ઌ೔ɺͱ͋ΔΤϰΝʹ঺հ͞Εͨهࣄ͕όζΓ·ͨ͠ɻ 3 ϝιου԰ͷϒϩά http://simplearchitect.hatenablog.com/entry/2017/06/19/080036

Slide 4

Slide 4 text

Ϟϒϓϩάϥϛϯάͯ͠·͢ɻ 4 ίί

Slide 5

Slide 5 text

ࠓ೔ͷ͓࿩ • Azure Cosmos DBΛۀ຿Ͱ࢖ͬͯΈͨΒɺյ ͪ͠Όͬͨɻ • ΍ͬͨ͜ͱɺࠔͬͨʢͯΔʣ͜ͱͷ࿩ • Cosmos DBͷ࢖͍ํͷ࿩͸͠·ͤΜɻ • υΩϡϝϯτΛಡΜͰɺ࢖ͬͯΈͯ͘ ͍ͩ͞ɻ 5

Slide 6

Slide 6 text

ͬ͘͟Γͱ͓࢓ࣄʹ͍ͭͯ • ৽نࣄۀ։ൃ • ·ͩPoCͷஈ֊ • σϞˠϑΟʔυόοΫˠमਖ਼ˠσϞ ͷαΠ ΫϧΛૣ͘ճ͍ͨ࣌͠ظ 6

Slide 7

Slide 7 text

WHY DO WE CHOOSE COSMOS DBʁ ͳͥCosmos DBΛબΜͩͷ͔ 7

Slide 8

Slide 8 text

બ୒ࢶ • Azure SQL Database • Azure Database for MySQL • Azure Cosmos DB 8

Slide 9

Slide 9 text

Azure SQL Database • ։ൃ؀ڥߏங͕େมͦ͏ • ϝϯόʔͷ؀ڥ͕MacɺWinࠞࡏ • ϝϯόʔͷ୭΋ར༻ܦݧͳ͠ • Ͱ΋ɺ͙͢ʹϓϩμΫτ։ൃʹணख͍ͨ͠… 9

Slide 10

Slide 10 text

Azure Database for MySQL • MySQLɺ·͡MySQL • ͜Ε·Ͱͷܦݧ͕׆͔ͤͦ͏ʂ • ͔͠͠ɺPreview൛… • ͦ͜Ͱ᪴͘ΑΓ͔͸ɺϓϩμΫτ։ൃʹूத ͍ͨ͠… 10

Slide 11

Slide 11 text

Azure Cosmos DBͷಛ௃ • ϚϧνσʔλϞσϧ • SQL, Mongo API, Key-Value, Graph • Ϧʔδϣϯލ͍ͩϨϓϦέʔγϣϯ • ߴ͍SLA • ಉ͡Ϧʔδϣϯ಺Ͱ͋Ε͹ಡΈࠐΈ10msҎ ಺Λ99%Ͱอূ 11

Slide 12

Slide 12 text

Azure Cosmos DB • ͨ·ͨ·ϝϯόʔશһʹMongoDBͷར༻ܦݧ ͕͋ͬͨɻ • ϩʔΧϧͰͷ։ൃ؀ڥ΋MongoDBΛΠϯε τʔϧ͢Ε͹OK • PHPͷAzure DocumentDB API ͷϥΠϒϥ Ϧ͸͚͋ͬͨͲɺ։ൃ͕ࢭ·ͬͯͨɻ 12

Slide 13

Slide 13 text

ଞͷAPIͰܨ͙ Document DBλΠϓʹMongo APIͰɺMongoλΠϓʹDocumentDB APIͰܨ͙ 13

Slide 14

Slide 14 text

େ੾ͳ͜ͱ 14 ଞͷAPIͰͷ઀ଓ৘ใ͸ϙʔλϧ ʹࡌͬͯͳ͍ɻ

Slide 15

Slide 15 text

େ੾ͳ͜ͱ 15 ଞͷAPIͰͷ઀ଓ৘ใͷऔಘํ๏͸ υΩϡϝϯτʹ΋ʢ͓ͦΒ͘ʣͳ͍ɻ

Slide 16

Slide 16 text

DocumentDB MongoDB 16

Slide 17

Slide 17 text

17 ͔͠͠ޓ׵ੑ͸͋Δɻ

Slide 18

Slide 18 text

DocumentDBʹMongo APIͰܨ͙࣌ͷURL • mongodb://ΞΧ΢ϯτ໊:ϚελʔΩʔ@ ΞΧ΢ϯτ໊.documents.azure.com: 10255/?ssl=true • Ϣʔβʔ໊͸ɺΞΧ΢ϯτ໊ • ύεϫʔυʹɺϚελʔΩʔ • SSLͰͳ͍ͱ઀ଓͰ͖ͳ͍ͷͰ஫ҙ 18

Slide 19

Slide 19 text

MongoDBʹDocumentDB APIͰܨ͙࣌ͷURL • https://ΞΧ΢ϯτ໊.documents.azure.com:443 • ϚελʔΩʔͱͯ͠ɺMongoDB ͷύε ϫʔυΛͦͷ··࢖͑Δɻ 19

Slide 20

Slide 20 text

ଞͷAZUREͷαʔϏεͱܨ͛Δ Functions, DataFactory ͳͲDocumentDB APIΛαϙʔτ 20

Slide 21

Slide 21 text

࠷ۙग़͖ͯͨཁ݅ • ڠྗձ͔ࣾΒσʔλΛऔΓࠐΈ͍ͨɻ • Treasuredata͔ΒAzure Blob Storageʹ CSVΛग़ྗՄೳ • ͔ͦ͜ΒઌΛͲ͏͠Α͏ʁ • Functions? 21

Slide 22

Slide 22 text

Azure DataFactory • σʔλͷύΠϓϥΠ ϯɺεέδϡʔϦϯά ͷαʔϏε • ୯७ͳσʔλͷΠϯ ϙʔτͳΒJSONͰઃ ఆΛॻ͚ͩ͘ɻ 22

Slide 23

Slide 23 text

͜Μͳײ͡ 23 ΄ͱΜͲίʔυΛॻ͔ͣʹσʔλ࿈ܞΛ࣮ݱʂ

Slide 24

Slide 24 text

Cosmos DBɺյΕͨ… 24 “Blender Cycles - Armageddon” by NGCHunter2 / CC BY-NC-ND

Slide 25

Slide 25 text

Կ͕ى͖ͨͷ͔ʁ • MongoDBʹDocumentDB APIܦ༝ͰσʔλΛೖΕΔͱյΕ Δɻ • Insert͸Ͱ͖Δ͚ͲɺRead͕Ͱ͖ͳ͘ͳͬͨɻ • Data Factory͸Կ΋໰୊ͳ͘σʔλΛೖΕଓ͚Δ… 25

Slide 26

Slide 26 text

Ͳ͏΍Β׬શʹޓ׵Ͱ͸ͳ͍ͬΆ͍ • DocumentDB ʹMongo APIͰσʔλ௥Ճ͸ ʢࠓͷͱ͜Ζʣ໰୊ͳ͍ • DocumentDBΛ࢖͑͹େৎ෉ʁ • ͚Ͳɺσʔλͷ࣋ͪํ΋ҟͳΔɻ 26

Slide 27

Slide 27 text

DocumentDB APIͰೖΕͨυΩϡϝϯτͷߏ଄ • API͝ͱͰߏ଄ͷݟ͑ํ͕ҟͳΔɻ 27 DocumentDB API Mongo API

Slide 28

Slide 28 text

DocumentDBʹMongoAPI͔ΒಡΈॻ͖͢Δ࣌ͷϙΠϯτ • ঢ়گʹΑΓಠࣗʹIDΛ࠾൪͢Δඞཁ͋Γ • DocumentDB ͕෇͚ΔID "_rid" ͸Mongo API͔Β͸࢖͑ͳ͍ɻ • ͦͷࡍͷIDͷ໊લ͸ɺDocumentDB͕෇͚Δଐੑ໊ͱҟͳΔ΋ ͷ͕ྑ͍ɻ • ಺෦Ͱ໊લ͕มߋ͞Εͯ͠·͏ɻʢྫɿ _rid -> $_rid ʣ • DocumentDB APIͱMongo APIͰ࢖͏͜ͱΛߟྀͨ͠ํ͕ྑ͍ɻ 28

Slide 29

Slide 29 text

·ͱΊ • MongoDB ʹDocumentDB APIͰσʔλΛೖΕΔͱ ʢࠓͷͱ͜Ζʣ2౓ͱ࢖͑·ͤΜɻ • DocumentDB ͳΒMongo APIͰ΋DocumentDB API Ͱ΋ಡΈॻ͖OK • DocumentDBͷ৔߹ɺMongoDBͱυΩϡϝϯτͷߏ ଄͕ҟͳΔͷͰσʔλઃܭ࣌ʹ஫ҙ͠·͠ΐ͏ɻ 29