Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Embulkに足りない5つのこと
Search
Civitaspo
December 15, 2015
Programming
7
5.6k
Embulkに足りない5つのこと
embulk meetup tokyoで話しました!
ユースケースが書かれているので是非参考にして下さい。
Civitaspo
December 15, 2015
Tweet
Share
More Decks by Civitaspo
See All by Civitaspo
バクラクのデータ基盤の現在地 / bakuraku-data-platform-202509
civitaspo
1
490
DatadogのArchived LogsをSnowflakeで高速に検索する方法(Archive Searchでオワコンにならないことを祈って) / How to search Datadog Archived Logs quickly with Snowflake (hoping Datadog Archive Search doesn’t make this obsolete)
civitaspo
0
160
【Snowflake九州ユーザー会#3】Snowflake Summit 2025 最速キャッチアップ会 Snowflake Summit 2025 概要&新機能 / Snowflake Summit 2025 Overview & New Features
civitaspo
0
51
【Snowflake九州ユーザー会#2】BigQueryとSnowflakeを比較してそれぞれの良し悪しを掴む / BigQuery vs Snowflake: Pros & Cons
civitaspo
7
2.3k
【Tokyo dbt Meetup #12】dbtでETL/Reverse ETLやったら思ったより運用が大変でした / The Challenges of ETL/Reverse ETL by dbt
civitaspo
2
290
バクラクのデータ基盤をBigQueryからSnowflakeへ移管した理由 / The reason for migrating Bakuraku data infrastructure from BigQuery to Snowflake
civitaspo
1
430
BigQueryからSnowflakeへ移管して作る最強のデータ基盤 〜Data Ingestion編〜 / The Ultimate Data Platform Migration from BigQuery to Snowflake: Data Ingestion Edition
civitaspo
16
13k
データ利用者が最速で価値を評価できるDataOpsを目指して / Towards DataOps that Enables Analysts to Deliver Value Rapidly
civitaspo
3
940
生データを最速で取り込むチャレンジ ~LayerXデータ基盤成長物語 part1~ / Building a data infrastructure that captures raw data at the fastest
civitaspo
4
1k
Other Decks in Programming
See All in Programming
OSS開発者という働き方
andpad
5
1.7k
私の後悔をAWS DMSで解決した話
hiramax
4
190
兎に角、コードレビュー
mitohato14
0
180
Ruby Parser progress report 2025
yui_knk
1
290
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
300
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
120
Kiroで始めるAI-DLC
kaonash
2
530
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
630
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
410
Go言語での実装を通して学ぶLLMファインチューニングの仕組み / fukuokago22-llm-peft
monochromegane
0
110
DockerからECSへ 〜 AWSの海に出る前に知っておきたいこと 〜
ota1022
5
1.9k
ソフトウェアテスト徹底指南書の紹介
goyoki
1
140
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Producing Creativity
orderedlist
PRO
347
40k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.6k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
The Art of Programming - Codeland 2020
erikaheidi
55
13k
Making Projects Easy
brettharned
117
6.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
111
20k
Transcript
EmbulkʹΓͳ͍ 5ͭͷ͜ͱ 2015-12-15 Embulk Meetup Tokyo #2 @Civitaspo
͓͜ͱΘΓ
࡞ͬͨπʔϧͷ͕ ग़͖ͯ·͕͢
ϦϦʔε͠·ͤΜʂ
͝ΊΜͳ͍͞(><)
ཧ༝ɿ͋Δਓ͔ΒͷҰ
ࠓ͜ͷπʔϧΛ ϦϦʔε͢Δͱ ੈͷதΛࠞཚͷӔʹ ר͖ࠐΉ͜ͱ ʹͳͬͯ͠·͏ͩΖ͏ɻ
ࠞཚͷछʹͳΔͩΖ͏ػೳ ʮEmbulk Projectʹظ͢Δ͜ͱʯ ͱ͍͏߲Ͱઆ໌͠·͢
Ͱ࢝Ί·͢ʂ
EmbulkʹΓͳ͍ 5ͭͷ͜ͱ 2015-12-15 Embulk Meetup Tokyo #2 @Civitaspo
ࣗݾհ தࢁوത (@Civitaspo) • DeNA: ೖࣾ3 • ੳܥΠϯϑϥΤϯδχΞ • σʔλճऩڥߏங
• Hadoopӡ༻…etc. • Perl / Ruby / Java • ৽ଔͰձࣾʹೖͬͯॳΊͯί ϯιʔϧ։͍ͨস
࡞ͬͨEmbulk Pluginୡ embulk-input-hdfs embulk-output-hdfs embulk-output-sftp embulk-filter-join-file embulk-filter-json-key embulk-filter-expand-json embulk-filter-flatten-json embulk-filter-distinct
࣭ཁɺΞυόΠε͋ΕtwitterͰʂ
ͪͳΈʹ શ෦Java PluginͰ͕͢
Intellijͬͯॻ͍ͯ·͢ vim!! vim!!
ΞδΣϯμ • ฐࣾͷBulkdataࣄ • ߏஙͨ͠Embulkج൫ • Γͳ͔͔ͬͨΒิͬͨػೳ̑ͭ • Embulk Projectʹظ͢Δ͜ͱ
ΞδΣϯμ • ฐࣾͷBulkdataࣄ • ߏஙͨ͠Embulkج൫ • Γͳ͔͔ͬͨΒิͬͨػೳ̑ͭ • Embulk Projectʹظ͢Δ͜ͱ
ฐࣾͷBulkdataࣄ
HDFS -> Vertica
ฐࣾͷBulkdataࣄ • ݎ࿚ͳϩάճऩج൫ • શͯͷαʔϏεͷϩάHDFSʹ֨ೲ͞ΕΔ • ϑΥʔϚοτ౷Ұ͞Ε͍ͯΔ • TSV +
JSONͷࠞ߹ϑΥʔϚοτ
ฐࣾͷBulkdataࣄ • ੳͰ༻͢ΔओཁετϨʔδVertica • HDFSͷϩάΛͦͷ··Verticaʹ֨ೲ͍ͨ͠ • ͨͩ͠streaming insertͰ͖ͳ͍… • Verticaߴසͳσʔλೖʹඇৗʹ
ऑ͍
Vertica? •ྻࢦܕߴूܭσʔλϕʔε •༻ιϑτΣΞϥΠηϯε(1TB·Ͱແྉ) •ඇৗʹ๛ͳੳؔ •twitterfacebookͰΘΕͯΔ •ฐࣾͷੳڥͷओ࣠
ߴ·Δχʔζ • GCS, S3, BigQueryͳͲcloud storageͷར༻֦େ • HDFS -> Vertica
͚ͩͰͳ͍Bulkloadχʔζ
None
Embulk
͜Ε͕΄͔ͬͨ͠Μʂ
ͬͦ͘͞ಋೖ
ΞδΣϯμ • ฐࣾͷBulkdataࣄ • ߏஙͨ͠Embulkج൫ • Γͳ͔͔ͬͨΒิͬͨػೳ̑ͭ • Embulk Projectʹظ͢Δ͜ͱ
Wrapper ߏஙͨ͠Embulkج൫
σʔλ֨ೲ·ͰͷྲྀΕ
Wrapper 1. GoogleSpreadSheet͔Β εΩʔϚใͱBulkloadλΠϓΛநग़
Wrapper 2. Ϋϥελใεέδϡʔϧใͱ ඥ͚ͯMySQLʹ֨ೲ
Wrapper 3. εέδϡʔϧʹैͬͯRedis Enqueue
Wrapper 4. ඥͮ͘BulkloadλΠϓɺΫϥελ ใ͔Βconfig.ymlΛࣗಈੜ
Wrapper 5. Embulk WrapperΛkick
Wrapper 6. ֨ೲઌͷσʔλΛআ
Wrapper 7. Embulk run
Wrapper 8. ॲཧ݁ՌΛMySQLʹอଘ
Wrapper 9. ݁Ռදࣔ
ৄࡉͳ࣮ʹؔͯ͠ ؾʹͳΔํ࠙ձͰʂ
ࠓ͢෦
Wrapper ࠓ͢෦
Wrapper ࠓ͢෦ ͳΜͰspreadsheetͬͯΔͷʁ
Wrapper ࠓ͢෦ Job QueueཧͲ͏ͬͯΔͷʁ
Wrapper ࠓ͢෦ ͳΜͰwrapper͔·ͯ͠Δͷʁ
Wrapper ࠓ͢෦ embulkʹͳ͔ͬͨͷʁ
ͳͲʹ͍ͭͯ͠·͢
ΞδΣϯμ • ฐࣾͷBulkdataࣄ • ߏஙͨ͠Embulkج൫ • Γͳ͔͔ͬͨΒิͬͨػೳ̑ͭ • Embulk Projectʹظ͢Δ͜ͱ
Γͳ͍͜ͱϥΠϯφοϓ 1. YAMLཧ 2. ୯ମॲཧϑϨʔϜϫʔΫ 3. δϣϒΩϡʔ 4. ฒྻ੍ޚ 5.
ଓ͖͔Β࣮ߦ
Γͳ͍͜ͱϥΠϯφοϓ 1. YAMLཧ 2. ୯ମॲཧϑϨʔϜϫʔΫ 3. δϣϒΩϡʔ 4. ฒྻ੍ޚ 5.
ଓ͖͔Β࣮ߦ
Γͳ͍͜ͱ̍
YAMLཧ
YAMLཧ • Embulkͷ༷͚ͩͲɻɻɻ • 1ͭͷBulkloadʹରͯ͠1ͭͷYAMLϑΝΠϧ
ฐࣾͷࣄ • εΩʔϚใΞφϦετ͕ఆٛ • εΩʔϚใҎ֎ͷઃఆੳج൫͕ཧ => ͻͱͭͷconfig.ymlੜʹෳਓ͕ؔΘΔ͜ͱʹ…
ฐࣾͷࣄ • ରͷBulkload1αʔϏε͋ͨΓ20~50 • ৗʹ20Ҏ্ͷαʔϏε͕ฒྻͰՔಇ͠ɺҠΓม ΘΓܹ͍͠ => େྔͷyaml͕ੜ͞Εͯཧ͕ͭΒ͍(ଓใͱ͔)
None
ج൫ཧ ΞφϦετཧ
None
͘Β͍ʹͳͬͨ
Α͘มΘΔ ΄ͱΜͲมΘΒͳ͍
None
݁ہΑ͘มΘΔͷ εΩʔϚใ͘Β͍
ͭͬͨ͘ • Embulk Config Generator & UI • ଓใΛDBͰҰݩཧ •
BulkloadύλʔϯΛநԽͯ͠DBͰཧ • εΩʔϚใspreadsheetͰཧ
ͭͬͨ͘ • config.yml࣮ߦલʹੜ͞ΕΔͷͰ༷ม ߋͳͲʹॊೈʹରԠͰ͖Δ • ೦ͳ͕Βguess͑ͳ͘ͳΓ·ͨ͠ɻ • ಛʹࠔͬͯͳ͍ • ϩάΛఆٛͨ͠ਓ͕εΩʔϚΛఆٛͯ͠Δ
Embulk Projectʹظ͢Δ͜ͱ • େنར༻ʹͱͬͯͷyaml • fileͰશͯΛཧ͢ΔͷͭΒ͍ • ಉ͡yamlͰཧऀ͕ҟͳΔ • ಉ͡yamlͰมߋස͕ҟͳΔ
Embulk Projectʹظ͢Δ͜ͱ • templateػೳ͚ͩͰͳ͘ɺΑΓଟ࣍ݩʹཧͰ ͖ΔΈ͕ඞཁͳͷͰʁ • ҰํͰɺ݁ہɺۀϑϩʔʹΑΔͷͰΈΜͳࣗ ࡞͢Δͷ͔͠Εͳ͍ͱࢥͬͯΔ
Γͳ͍͜ͱϥΠϯφοϓ 1. YAMLཧ 2. ୯ମॲཧϑϨʔϜϫʔΫ 3. δϣϒΩϡʔ 4. ฒྻ੍ޚ 5.
ଓ͖͔Β࣮ߦ
Γͳ͍͜ͱ2
୯ମॲཧ ϑϨʔϜϫʔΫ
EmbulkBulkload͢Δ͚ͩ • ઃఆ௨Γʹɺ͋Δσʔλιʔε͔Βɺ͋Δσʔ λιʔεσʔλΛϩʔυ͢Δ • Input / Outputͷঢ়ଶʹڵຯ͕ແ͍
͔ͩΒEmbulkͷ୲อ͢Δႈੑ ͜͏ͳΔ • 1ճ࣮ߦ͠Α͏ͱͨ͠Bulkloadʹର͢ΔႈੑΛ ୲อ͠Α͏ͱ͢ΔʢPlugin࣍ୈʣ • વ͚ͩͲɺ֨ೲઌͷσʔλͷ߹ੑΛอͭ ͷͰͳ͍
ฐࣾͷࣄ • HDFS͔ΒVerticaͷ֨ೲৗʹΧϥϜΛߜΔʢ͓ ۚΣ…ʣ • ෳࡶͳKPI͕ݟͨ͘ͳͬͨ࣌ʹΧϥϜՃΛߦ͏ • HDFS্ͷσʔλ͕ඞཁʹͳͬͨλΠϛϯάͰ σʔλͷ࠶ϩʔυ͕ൃੜ =>
ࣄલʹ֨ೲൣғͷσʔλআ͕ඞཁ
ฐࣾͷࣄ • File֨ೲ͕͍ྃͯ͠Δ͔Ͳ͏͔Λ `_SUCCESS` ͱ͍͏ϑΝΠϧΛಉ֊ʹஔ͘͜ͱͰཧ • `_SUCCESS` ͕ͳ͚Εॲཧதͷσʔλͱ ೝࣝ͞ΕΔ =>
ࣄલʹϑΝΠϧͷଘࡏ֬ೝͱࣄޙʹϑΝΠϧͷ put͕ඞཁ
ͱ͍͏͔ • ձࣾʹΑͬͯϧʔϧҧ͑Ͳɺࣄલॲཧࣄޙॲ ཧઈର͍Δͣ
ͭͬͨ͘ • Embulk Wrapper • EmbulkʹΓͳ͍ࣄલɾࣄޙͷ୯ମॲཧΛ αϙʔτ͢ΔWrapper • YAMLͷઃఆϑΝΠϧʹج͍࣮ͮͯߦ͞ΕΔ •
action × storage ͱ͍͏୯ҐͰpluginΛॻ͘
ͪΐͬͱ͚ͩ Embulk Wrapperհ આ໌༻ͷYaml͕ ؒԆͼ͢ΔͷͰ ΞϯΧʔ͍·͢ɻ
actionͱ͍ actionͱ͍͏୯ҐͰ ॲཧΛఆٛ
actionΛarrayͰఆٛ͠ γʔέϯγϟϧʹ࣮ߦ
embulkͷ࣮ߦ
࡞ͬͨActions • vertica#delete • vertica#check_null • vertica#glance (νϥݟ) • s3#poll
• s3#remove • ….
Embulk Projectʹظ͢Δ͜ͱ • Embulkʹ୯ମॲཧϑϨʔϜϫʔΫඞཁෆՄܽ • ґଘؔͷͳ͍୯ମॲཧΛߦ͏ϓϥάΠϯػߏ ͕Embulkʹଂ͞ΕΕɺEmbulkͷΈͰߦ͑Δ ͜ͱͷ෯͕͔ͳΓ͕ΔͷͰͳ͍ͩΖ͏͔ʁ
Γͳ͍͜ͱϥΠϯφοϓ 1. YAMLཧ 2. ୯ମॲཧϑϨʔϜϫʔΫ 3. δϣϒΩϡʔ 4. ฒྻ੍ޚ 5.
ଓ͖͔Β࣮ߦ
Γͳ͍͜ͱ3
δϣϒΩϡʔ
Embullk ͷ࣮ߦΛ Ͳ͏ཧ͠Α͏͔ • େنར༻͢ΔͳΒδϣϒཧͷΈ͕ඞਢ • વ͚ͩͲ Embulk ʹͦΜͳػೳͳ͍ •
ࣗͰ࡞Δ͔طଘͷผͷԿ͔Λ͏͔͠ແ͍
݁ہɺͭͬͨ͘ • Redis/Sidekiq ΛͬͨfifoͳδϣϒΩϡʔ • εέδϡʔϧ࣮ߦɺεέδϡʔϥ͕࣌ؒʹͳΔ ͱ job Λ enqueue
• Adhoc࣮ߦɺϢʔβʔ͕δϣϒ࣮ߦϘλϯΛԡ ͢ͱ job Λ enqueue => ͍͢͝ී௨ͷδϣϒΩϡʔ͆
Workerαʔόʔ(Embulk࣮ߦڥ) • 1αʔόʔ͋ͨΓɺEmbulk 1 process • EmbulkCPUΛ͑Δ΄ͲߴʹͳΔͨΊ • 24 CPU,
memory 60 GB αʔόʔ 6Ͱฒྻ࣮ߦ
ࠓͷͱ͜Ζࠔͬͯͳ͍ͷ͕ͩ • ഉଞॲཧ͕ͪΌΜͱͰ͖͍ͯͳ͍ • ༏ઌॲཧ͕ग़͖ͯͦ͏ • graceful restartͰ͖ͯͳ͍ • …
=> Ұॠߟ͑Δ͚ͩͰग़͖ͯͦ͏ͳ͕͍ͬͺ͍
͜ΕྲྀੴʹEmbulkʹ ظͯ͠ͳ͍ • ॻ͍͚ͨͲEmbulkʹΓͳ͍͜ͱͱ͍͏ΑΓ BatchڥʹΓͳ͍͜ͱ͔ͬͯΜ͡Ͱͨ͠ • ͱ͍͑ɺEmbulkΛར༻͢Δ্Ͱඞཁͳ͜ͱͳ ͷͰϕετϓϥΫςΟε୳ͯ͠·͢
Γͳ͍͜ͱϥΠϯφοϓ 1. YAMLཧ 2. ୯ମॲཧϑϨʔϜϫʔΫ 3. δϣϒΩϡʔ 4. ฒྻ੍ޚ 5.
ଓ͖͔Β࣮ߦ
Γͳ͍͜ͱ4
ฒྻ੍ޚ
Embulkͷฒྻ੍ޚ • ݱঢ়LocalExecutorInputͷϑΝΠϧͰશମͷ ฒྻΛ੍ޚ͍ͯ͠Δ • FileInputPluginܧঝͰͳ͚Εฒྻجຊతʹ 1ͭ
ฐࣾͷࣄ • HDFSʹ֨ೲ͞Ε͍ͯΔϑΝΠϧ1ϑΝΠϧ͕ ڊେ • namenodeͷϝλใΛۃྗগͳ͘͢ΔͨΊ • ϑΝΠϧ͕͔Ε͍ͯͳ͍ͨΊɺϚϧνεϨου Ͱಈ͔ͣɺCPUΛશવ͑ͳ͍
ͭͬͨ͘ • embulk-input-hdfs • ಉ͡ϑΝΠϧͷinput streamΛฒྻੜ ͠ɺඞཁൣғͷΈread͢ΔΈ • configʹॻ͔ΕͨʹϑΝΠϧΛׂ •
ҙͷฒྻͰembulk࣮ߦ͕Մೳʹʂ
͜ΕͰCPU ϑϧʹ͑Δͧʂ
ͱࢥͬͨΒ͕ • OutputͰ͋ΔVertica • Session͕૿͑͗͢ΔͱVertica͕ෆ҆ఆʹ • ࠷େ20͘Β͍ʹߜͬͯ͘ΕͱVerticaνʔϜ ͔Βґཔ • InputͰฒྻنఆ͞ΕΔͷʹͲ͏͢Ε͑͑Μ
Ͱ
ͭͬͨ͘ • embulk-output-vertica • ॲཧલʹσʔλ֨ೲ༻ͷthreadΛผ్Δ • ֤εϨουσʔλ֨ೲ༻ͷthreadʹpageΛ enqueue • σʔλ֨ೲ༻threadpageΛdequeue͠ίϐʔͯ͠
͍͘ • ͜ΕͰ1ճͷίϐʔͰ1session͔͠ΘͣʹࡁΉͧʂ
Embulk Projectʹظ͢Δ͜ͱ • ฒྻ੍ޚͬͺΓExecutorʹͬͯ΄͍͠ • input / filters / outputόϥόϥʹઃఆ͍ͨ͠
• https://github.com/embulk/embulk/issues/ 232 • ϑΝΠϧׂͷAPIͱ͔FileInputPluginͷAPIͱ͠ ͍͍ͯ͋ͬͯΜ͡Όͳ͍͔͠Β
Γͳ͍͜ͱϥΠϯφοϓ 1. YAMLཧ 2. ୯ମॲཧϑϨʔϜϫʔΫ 3. δϣϒΩϡʔ 4. ฒྻ੍ޚ 5.
ଓ͖͔Β࣮ߦ
Γͳ͍͜ͱ5
ଓ͖͔Β࣮ߦ
Embulkͷػೳͱͯ͠ͷ ʮଓ͖͔Β࣮ߦʯ • Embulk࣮ߦ࣌ʹɺ࣍ʹEmbulkΛ࣮ߦ͢Δ࣌ʹ ༻͢ΔconfigϑΝΠϧΛੜ͓ͯ͘͠ • Input Plugin୯ମͷػೳͱͯ͠ఏڙ͞Ε͍ͯΔ embulk run
/path/to/next-config.yml \ -o /path/to/next-config.yml
ฐࣾͷࣄ • HDFS্ͷϑΝΠϧʹσʔλ͕ه͞Εͯߦ͘͜ ͱ͕ଟ͍ • ϑΝΠϧύεมΘΒͳ͍ɺͰɺඞཁͳσʔ λ͕૿͑ͯΔ • σʔλͷ༰͔ΒFilter͢Δ͔Ͳ͏͔அ͢ Δඞཁ͕͋Δ
Γ͔ͨͬͨ͜ͱ • Outputઌ(Vertica) ֨ೲ͞Ε͍ͯΔσʔλΛ֬ ೝ͠ɺInputσʔλΛFiltering͢Δ • SELECT max(id) FROM table;
ͷ݁Ռ͔Β • embulk-filter-row ͷconditionੜ
ͭͬͯ͘ͳ͍ • ୯ମॲཧϑϨʔϜϫʔΫͱҧ͍ɺॲཧؒͷґ ଘ͕ؔଘࡏ͢ΔͨΊɺͬ͘͞ͱͰ͖·ͤΜ Ͱͨ͠ٽ • Embulk WrapperͰରൣғΛࣄલʹফͯ͠શͯ ϩʔυ͢Δͱ͍͏ྗٕͰରԠͨ͠
Embulk Projectʹظ͢Δ͜ͱ • ΄Μͱ͏ͷҙຯͰ߹ੑΛอͭʹOutputଆͷ σʔλΛݟʹߦ͘ඞཁ͕͋Δ • ࣮ࡍʹॻ͜͏ͱ͢ΔͱEmbulkͷྖҬΛ͑Δ • ࡢฉ͍͚ͨͲʮdigdagʯͱ͍͏πʔϧ͕ग़ΔΒ ͍͠ΐ
• https://github.com/treasure-data/digdag-docs
·ͱΊ
·ͱΊ • Embulkಋೖͯ͠ϝονϟḿͬͯΔ • ৽͍͠σʔλιʔε͕ग़͖ͯͯίετ͘ ಋೖͰ͖Δʂ
·ͱΊ • ͨͩɺ࣮ࡍproductionӡ༻͠Α͏ͱ͢Δͱࡉ͔͍ ͜ͱ͕ؾʹͳͬͯ͘Δ • YAMLͷͱ͔ • δϣϒΩϡʔͷͱ͔ • લॲཧɺޙॲཧͲ͏͢Δͷͱ͔
·ͱΊ • ࣮ࡍɺEmbulk͚ͩͰղܾ͢ΔΑ͏ͳͰͳ͍ • ΈΜͳͰݟͨΊͯϕετϓϥΫςΟε୳͍ͯ͠ ͖·͠ΐ͏ • AdventCalendarۭ͍ͯΔͷͰॻ͖·͠ΐ͏
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ʂ