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
breakthrough point of web engineer
Search
Livesense Inc.
PRO
June 23, 2018
Programming
0
130
breakthrough point of web engineer
【LIVESENSE流】Webサービスの開発・運用におけるデータエンジニアリング
https://camphor.connpass.com/event/87720/
上記イベント登壇資料。
Livesense Inc.
PRO
June 23, 2018
Tweet
Share
More Decks by Livesense Inc.
See All by Livesense Inc.
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
200
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
860
26新卒_総合職採用_会社説明資料
livesense
PRO
0
2.6k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
1
11k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
6.1k
中途セールス職_会社説明資料
livesense
PRO
0
160
EM候補者向け転職会議説明資料
livesense
PRO
0
68
コロナで失われたノベルティ作成ノウハウを復活させた話
livesense
PRO
0
190
転職会議でGPT-3を活用した企業口コミ要約機能をリリースした話
livesense
PRO
0
1.2k
Other Decks in Programming
See All in Programming
採用事例の少ないSvelteを選んだ理由と それを正解にするためにやっていること
oekazuma
2
1.1k
【re:Growth 2024】 Aurora DSQL をちゃんと話します!
maroon1st
0
810
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
2
450
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
110
htmxって知っていますか?次世代のHTML
hiro_ghap1
0
350
良いユニットテストを書こう
mototakatsu
8
3.1k
毎日13時間もかかるバッチ処理をたった3日で60%短縮するためにやったこと
sho_ssk_
1
360
週次リリースを実現するための グローバルアプリ開発
tera_ny
1
110
見えないメモリを観測する: PHP 8.4 `pg_result_memory_size()` とSQL結果のメモリ管理
kentaroutakeda
0
720
useSyncExternalStoreを使いまくる
ssssota
6
1.4k
情報漏洩させないための設計
kubotak
4
840
php-conference-japan-2024
tasuku43
0
360
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Automating Front-end Workflow
addyosmani
1366
200k
Side Projects
sachag
452
42k
Faster Mobile Websites
deanohume
305
30k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Building Your Own Lightsaber
phodgson
103
6.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
170
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Transcript
ϓϩμΫτίʔυͰޠΔʂ ΤϯδχΞͷͷ ϒϨʔΫεϧʔϙΠϯτ CAMPHOR×LIVESENSE WEBαʔϏεͷ։ൃɾӡ༻ʹ͓͚ΔσʔλΤϯδχΞϦϯά 2018/06/23() @TCHIKUBA
ϓϩμΫτίʔυͰޠΔʂ ΤϯδχΞͷͷϒϨʔΫεϧʔϙΠϯτ PROFILE ▸ 1978.11 Ԭݝੜ·Ε ▸ 2002.03 ౦ژۀେֶཧֶ෦ଔ ▸
2004.08 ϑϦʔϥϯεΤϯδχΞ ▸ 2011.08 ৽نࣄۀ։ൃPM ▸ 2013.05 Ϧϒηϯεೖࣾ ▸ 2015.04 ৽نࣄۀ্ཱͪ͛ ▸ 2018.06 ΤϯδχΞϦϯάϚωʔδϟʔʗ σʔλΤϯδχΞ
None
None
ϓϩμΫτίʔυͰޠΔʂ ΤϯδχΞͷͷϒϨʔΫεϧʔϙΠϯτ AGENDA ▸ Ruby on RailsΛߏ͢Δٕज़ ▸ RailsͰ࣮ફతͳwebΞϓϦέʔγϣϯ։ൃ͢Δצॴ ▸
IESHILͷࣄྫ ▸ RailsϓϩμΫγϣϯίʔυ ▸ ։ൃϓϩηε ▸ σʔλΤϯδχΞϦϯά
RUBY ON RAILSΛ ߏ͢Δٕज़
RUBY ON RAILSΛߏ͢Δٕज़ ABOUT RUBY ON RAILS ▸ ౷తͳMVCϑϨʔϜϫʔΫ ▸
RESTfulͳϧʔςΟϯά ▸ ActiveRecordʢڧྗͳORMʣ ▸ ϚΠάϨʔγϣϯʢDBཧʣ ▸ ։ൃϞʔυʢdevelopmentʗtestʗproductionʣ ▸ ϑϩϯτΤϯυ ▸ Asset Pipeline ▸ SCSS ▸ CoffeeScript ▸ WebpackerʢRails 5.1ʙʣ ▸ RubyGemsΤίγεςϜ ▸ BDD
౷తͳ MVCϑϨʔϜϫʔΫ
RUBY ON RAILSΛߏ͢Δٕज़ RESTFULͳROUTING ▸ bin/rails g scaffold User name:string
email:string ▸ bin/rails routes ▸ config/routes.rb ▸ resources :users
RUBY ON RAILSΛߏ͢Δٕज़ ACTIVE RECORD ▸ app/models/application_record.rb ▸ app/models/user.rb ▸
User.all ▸ User.find(1) ▸ User.take.name ▸ User.take.email
RUBY ON RAILSΛߏ͢Δٕज़ ϚΠάϨʔγϣϯ ▸ db/migrate/20180623163000_create_users.rb ▸ bin/rails db:migrate ▸
bin/rails db:rollback
RUBY ON RAILSΛߏ͢Δٕज़ ։ൃϞʔυ ▸ RAILS_ENV ▸ bin/rails s -e
[mode name] ▸ config/environments/ ▸ development.rb ▸ production.rb ▸ test.rb
FRONTEND
RUBY ON RAILSΛߏ͢Δٕज़ ASSET PIPELINE ▸ RubyGems ▸ sprockets-railsʢΞηοτίϯύΠϧʣ ▸
sass-railsʢSCSSʣ ▸ uglifierʢJSϑΝΠϧѹॖʣ ▸ coffee-railsʢJS→CoffeeScriptίϯύΠϧʣ ▸ bin/rails assets:precompile (for production) ▸ ϑΟϯΨʔϓϦϯτ ▸ application-908e25f4bf641868d8683022a5b62f54.css
RUBY ON RAILSΛߏ͢Δٕज़ SCSS ▸ RubyGems ▸ sass-rails ▸ app/assets/stylesheets/application.css
RUBY ON RAILSΛߏ͢Δٕज़ COFFEE SCRIPT ▸ RubyGems ▸ coffee-rails ▸
app/assets/javascripts/application.js
RUBY ON RAILSΛߏ͢Δٕज़ WEBPACKER (RAILS 5.1~) ▸ RubyGems ▸ webpacker
▸ bin/rails new myapp --webpack ▸ bin/rails webpacker:install ▸ app/views/layouts/application.html.erb ▸ bin/webpack-dev-server
None
มԽͷ͍ ϑϩϯτΤϯυο…!!
None
๛ͳ RUBYGEMS
RUBY ON RAILSΛߏ͢Δٕज़ RUBY GEMS ▸ bin/bundle inst —path vendor/bundle
-j4 GEMืूதʂ
RUBY ON RAILSΛߏ͢Δٕज़ RUBY GEMS (ϚοϋόΠτ 2006.02~) ▸ grep 'gem
' Gemfile | wc -l ▸ 74 ※ ▸ ʲFYIʳgrep create_table db/schema.rb | wc -l ▸ 363
RUBY ON RAILSΛߏ͢Δٕज़ RUBY GEMS (ब׆ձٞ 2015.04~) ▸ grep 'gem
' Gemfile | wc -l ▸ 71 ▸ ʲFYIʳgrep create_table db/schema.rb | wc -l ▸ 226
RUBY ON RAILSΛߏ͢Δٕज़ RUBY GEMS (IESHIL 2015.08~) ▸ grep 'gem
' Gemfile | wc -l ▸ 113 ▸ ʲFYIʳgrep create_table db/schema.rb | wc -l ▸ 175
RUBY ON RAILSΛߏ͢Δٕज़ RUBY GEMS (JOB-DRAFT 2015.11~) ▸ grep 'gem
' Gemfile | wc -l ▸ 119 ▸ ʲFYIʳgrep create_table db/schema.rb | wc -l ▸ 250
※ ϞϊϦγοΫͳ RAILSࣄྫ
BDD
RUBY ON RAILSΛߏ͢Δٕज़ BDD (ৼۦಈ։ൃ) ▸ Minitest (Default) ▸ bin/rails
test ▸ Rspec (RubyGems) ▸ bin/rails g rspec:install ▸ bin/bundle binstubs rspec-core ▸ bin/rspec
ςετίʔυ ҭͯΔͷ
جຊ͜͜·Ͱ
COFFEE BREAK
[COFFEE BREAK] RAILSॳ৺ऀ͋Δ͋Δ Ͳ͔͜ΒͲ͜·Ͱ͕RAILS WAYͳͷ͔ʁ ▸ ෳܗͱ୯ܗͷҧ͍ ▸ Routing →
resources :usersʢෳܗʣ ▸ Controller → class UsersControllerʢෳܗʣ ▸ Model → class Userʢ୯ܗʣ ▸ Table → usersςʔϒϧʢෳܗʣ ▸ View → app/views/usersʢෳܗʣ
[COFFEE BREAK] RAILSॳ৺ऀ͋Δ͋Δ Ͳ͔͜ΒͲ͜·Ͱ͕RAILS WAYͳͷ͔ʁ ▸ ύʔγϟϧͷ໋໊ ▸ app/views/users/index.html.erb ▸
render ‘layouts/header’ ▸ app/views/layouts/_header.html.erb ▸ FAQ ▸ Missing TemplateౖͬͯΒΕΔΜͰ͚͢Ͳ… ▸ ͳΜͰΞϯμʔείΞ͕ඞཁͳΜͰ͔͢ʁ
A: THIS IS THE RAILS WAY!! ※ΞΫγϣϯ͔ΒݺΕΔςϯϓϨʔτͱύʔγϟϧΛ۠ผ͢ΔͨΊ
[COFFEE BREAK] RAILSॳ৺ऀ͋Δ͋Δ Ͳ͔͜ΒͲ͜·Ͱ͕RAILS WAYͳͷ͔ʁ ▸ webΞϓϦέʔγϣϯͷجૅͷཧղෆ ▸ <%= form_for(@article)
do |f| %> ▸ <%= f.text_field :title, title: ‘title of article’ %> ▸ <% end %>
[COFFEE BREAK] RAILSॳ৺ऀ͋Δ͋Δ Ͳ͔͜ΒͲ͜·Ͱ͕RAILS WAYͳͷ͔ʁ ▸ RubyͷγϯλοΫε͕Θ͔Βͳ͍ ▸ <% @users.each
do |user| %> ▸ <%= user.name %> ▸ <% end %>
COFFEE BREAK ͜͜·Ͱ☕
RUBY ON RAILSΛߏ͢Δٕज़ RUBY ON RAILSͷ͍ॴ ▸ webΞϓϦέʔγϣϯͷϓϩτλΠ ϓΛૉૣ͘࡞Δ ▸
ϑϩϯτΤϯυ(HTMLʗCSSʗ JavaScript)αʔόʔαΠυ(Ruby) 1ਓͰαΫοͱ࡞Δ https://logmi.jp/6034
࣮ νʔϜ։ൃʹ ͍ͯͳ͍!?
RAILSͰ࣮ફతͳWEBΞϓϦ έʔγϣϯ։ൃ͢Δצॴ ͔͜͜Β͕ຊ
RAILSͰ࣮ફతͳWEBΞϓϦέʔγϣϯ։ൃ͢Δצॴ ABOUT צॴ ▸ αʔόʔαΠυ ▸ ڥߏங ▸ RubyGemsબఆ ▸
MVCҎ֎ͷϨΠϠʔ ▸ ϑϩϯτΤϯυ ▸ Webpacker or notʢRails 5.1~ʣ ▸ SPAཁ݅ʢReact.jsʗVue.jsʗAngularJS etc.ʣ
RAILSͰ࣮ફతͳWEBΞϓϦέʔγϣϯ։ൃ͢Δצॴ SERVER SIDE - ڥߏங ▸ ΦϯϓϨʗAWSʗHeroku ▸ ϛυϧΣΞબఆʗߏཧʢRDBʗKVSʗݕࡧetc.ʣ ▸
։ൃڥʗεςʔδϯάڥʗຊ൪ڥߏங ▸ σϓϩΠʗCI
RAILSͰ࣮ફతͳWEBΞϓϦέʔγϣϯ։ൃ͢Δצॴ SERVER SIDE - RUBYGEMSબఆ ▸ બఆ͕؊ ▸ ؾΛ͚ͭΔϙΠϯτ ▸
ཁ݅ʹԊ͍ͬͯΔ͔ ▸ ྨࣅͷػೳΛ࣋ͭgemͷௐࠪ ▸ ༻࣮͕͋Δ͔ ▸ OSS։ൃίϛϡχςΟ ▸ ϓϩδΣΫτͷRubyʗRailsͷόʔδϣϯͱͷ߹ੑ ▸ Railsػೳ֦ுܥཁҙʢparanoiaͳͲʣ ▸ ։ൃνʔϜͱͷ߹ҙܗ
RAILSͰ࣮ફతͳWEBΞϓϦέʔγϣϯ։ൃ͢Δצॴ SERVER SIDE - MVCҎ֎ͷϨΠϠʔ ▸ appԼͷߏ ▸ decoratorsʗformsʗservicesʗtasksʗvalidators etc.
▸ όονॲཧʢrakeλεΫor notʣ ▸ σʔλॲཧੑೳཁ݅࣍ୈ
RAILSͰ࣮ફతͳWEBΞϓϦέʔγϣϯ։ൃ͢Δצॴ ABOUT צॴ ▸ αʔόʔαΠυ ▸ ڥߏங ▸ RubyGemsબఆ ▸
MVCҎ֎ͷϨΠϠʔ ▸ ϑϩϯτΤϯυ ▸ Webpacker or notʢRails 5.1~ʣ ▸ SPAཁ݅ʢReact.jsʗVue.jsʗAngularJS etc.ʣ
RAILSͰ࣮ફతͳWEBΞϓϦέʔγϣϯ։ൃ͢Δצॴ FRONTEND ▸ bin/rails new myapp --webpack ▸ bin/rails new
myapp --webpack=react ▸ bin/rails new myapp --webpack=vue ▸ bin/rails new myapp —webpack=angular ▸ bin/yarn add [package] ▸ bin/yarn install/update
ΩϞ͍
RAILSͰ࣮ફతͳWEBΞϓϦέʔγϣϯ։ൃ͢Δצॴ FRONTENDͷ՝ ▸ turbolinks ▸ sprockets ▸ webpacker ▸ webpack-dev-server
▸ CoffeeScript ▸ babel
RAILS ϓϩμΫγϣϯίʔυ IESHILͷࣄྫ
None
IESHILͷࣄྫ Πϯϑϥ ▸ Herokuʢ~2018.05ʣ ▸ ্ཱͪ͛࣌ͷεϐʔυ༏ઌ ▸ ๛ͳΞυΦϯ ▸ Heroku
Private Spaces ▸ TokyoϦʔδϣϯͰಈ࡞ ▸ 3ഒҎ্ߴʹʂ ▸ Ұ෦AWS
IESHILͷࣄྫ HEROKU PRIVATE SPACESͬͺΓ͔ͬͨʢ༨ஊʣ ▸ രʂ ▸ αʔόʔฏۉԠ࣌ؒˠ2ഒ ▸ αʔόʔฏۉଓ࣌ؒˠ5ഒ
IESHILͷࣄྫ ʲFYIʳHEROKU MEETUP#21 ▸ 17Y৽ଔͷ͘Μ͕ొஃ༧ఆ
ಉ྅ɿHeroku MeetupͰొஃऀืूͯ͠Δ ಉ྅ɿ͘Μൃදͪ͠Ό͍ͳΑ ͘ΜɿλΠτϧͲ͏͠·͔͢ʁ അɿ10ഒͬͯͬͪΌ͑Αʢஊʣ ͘ΜɿΘ͔Γ·ͨ͠ʂʂ
None
IESHILͷࣄྫ HEROKUͰͷ্ཱͪ͛ͬͺΓ͔ͬͨ ▸ 3໊ʢϚελʗRailsʗػցֶशʣͰ2ϲ݄͘Β͍ɻ
IESHILͷࣄྫ MIDDLEWARE ▸ Heroku Add-ons ▸ ʴSendgridʗʴFastlyʢCommon Runtimeʣ ▸ ElasticsearchʢElastic
Cloudʣ ▸ Tresure Data
IESHILͷࣄྫ ࣮ߦڥ ▸ ։ൃڥ ▸ MacʢϩʔΧϧʣ or CentOSʢOpenStackʣ ▸ PRຖͷಈ࡞֬ೝڥ
▸ Heroku Review Apps ▸ εςʔδϯάڥ ▸ staging.ieshil.com ▸ ຊ൪ڥ ▸ www.ieshil.com
IESHILͷࣄྫ CIʗDEPLOY ▸ CI ▸ GitHub + CircleCIʢtest+lintʣ ▸ Deploy
▸ ChatOps with slack ▸ /h deploy ieshil-front/master to prod
IESHILͷࣄྫ RUBYGEMS ▸ Ϣʔβʔొཁ݅ʢsorceryʗomniauthʣ ▸ ϝʔϧૹ৴ཁ݅ʢsendgrid4rʣ ▸ ը૾ॲཧཁ݅ʢdragonfly-s3_data_storeʗshrineʗimage_processing etc.ʣ ▸
SEOཁ݅ʢgretelʗsitemap_generatorʣ ▸ API࿈ܞʢfaraday etc.ʣ ▸ δϣϒΩϡʔʢrescue etc.ʣ ▸ ։ൃิॿ ▸ Rails֦ுܥʢslim-railsʗseed-fuʗforemanʗconfigʗdotenv-railsʗpry-rails etc.ʣ ▸ ςετؔ࿈ʢrubocopʗrspecʗcapybaraʗselenium-webdriverʗturnipʗfactory_bot_railsʗdatabase_rewinder etc.ʣ ▸ ͦͷଞʢletter_opener_webʗslack-notifierʗrollbarʗbullet etc.ʣ
IESHILͷࣄྫ APPԼͷߏ ▸ Decoratorsʢactive_decoratorʣ ▸ FormsʢActiveModel::Modelʣ ▸ Importers ▸ Search
▸ Services ▸ Tasks ▸ Uploaders ▸ Validators ▸ ValuesʢActiveModel::Modelʣ
▸ app/forms/application.rb IESHILͷࣄྫ APP/FORMS
▸ ܧঝͯ͠༻ IESHILͷࣄྫ APP/FORMS
▸ ܧঝͯ͠༻ IESHILͷࣄྫ APP/FORMS
▸ ίϯτϩʔϥʔͰͷ༻ IESHILͷࣄྫ APP/FORMS
IESHILͷࣄྫ όονॲཧ ▸ bin/rails[rake] -vT ▸ IESHILͰݐϚελʗՁ֨ࠪఆͳͲʹTresure Data༻ ▸ digdagʗembulk
IESHILͷࣄྫ FRONTEND ▸ React.jsʗTypeScriptΛ༻ ▸ jQueryͷݹ͍ίʔυϕʔεΛஔ ▸ SEOཁ݅ΑΓඇSPA ▸ SSRπϥϛ͕ଟ͍ͷͰҙ
https://www.slideshare.net/yutasuzuki589/vs-rails-js
IESHILͷࣄྫ ։ൃϓϩηε ▸ JIRAʗConfluence ▸ ϢʔβʔετʔϦʔઃܭʗݟੵ ▸ ετʔϦʔϙΠϯτϕʔεͰͷݟੵ
IESHILͷࣄྫ σʔλΤϯδχΞϦϯά ▸ IESHILͰ༷ʑͳϏοάσʔλΛऔΓѻ͏ ▸ Ϛϯγϣϯ ▸ औҾࣄྫ ▸ ॅڥ
etc.
IESHILͷࣄྫ σʔλΤϯδχΞϦϯάͷਏΈ ▸ ॲཧ࣌ؒ ▸ ໊دͤॲཧ ▸ ҟৗݕग़ ▸ ࢼߦࡨޡ
▸ લॲཧ ▸ ӡ༻Λߟྀͨ͠Έͮ͘Γ ▸ ϏδωευϝΠϯࣝ ▸ ౷ܭʗػցֶशʗࣗવݴޠॲཧͳͲͷલఏࣝ
IESHILͷࣄྫ ॅڥσʔλ ▸ Ұࡾݝͷϝογϡίʔυ
IESHILͷࣄྫ ॅڥσʔλऔΓࠐΈॲཧ ▸ ݩσʔλऔΓࠐΈ
IESHILͷࣄྫ ॅڥσʔλऔΓࠐΈॲཧ ▸ TresureDataͷऔΓࠐΈ
IESHILͷࣄྫ ॅڥσʔλऔΓࠐΈॲཧ ▸ TresureData→PostgreSQLͷऔΓࠐΈ
IESHILͷࣄྫ ॅڥσʔλऔΓࠐΈॲཧ ▸ ޙॲཧ
IESHILͷࣄྫ DIGDAG ▸ ϫʔΫϑϩʔΤϯδϯ
IESHILͷࣄྫ EMBULK ▸ όϧΫσʔλϩʔμʔ
IESHILͷࣄྫ ʲFYIʳՁ֨ࠪఆ ▸ ށຖʹՁ֨ࠪఆ
IESHILͷࣄྫ ʲFYIʳՁ֨ࠪఆ ▸ Hivemall + Python
IESHILͷࣄྫ ʲFYIʳՁ֨ࠪఆ ▸ ϔυχοΫ๏
IESHILͷࣄྫ ϒϨʔΫεϧʔϙΠϯτ·ͱΊ ▸ ཁ͔݅ΒRails։ൃج൫Λ͑Δ ▸ νʔϜ։ൃΛલఏͱͯ͠पลྖҬΛඋ͢Δ ▸ νʔϜͰ߹ҙΛܗ͢Δ ▸ RubyGemsબఆ
▸ appԼͷߏ ▸ ϑϩϯτΤϯυ ▸ Ϗοάσʔλʗػցֶशͱͷ͖߹͍ํ ▸ ɾϞϊϦγοΫʢMonolithicʗ༁ɿҰຕ൘ͷʣ ▸ Private gem ▸ ϚΠΫϩαʔϏεԽʢస৬ձٞʣ
WEBΞϓϦ։ൃͷ࠷దԽ ߟ͑Δ͜ͱ͍ͬͺ͍ RAILSΞϓϦ։ൃͷצॴ…
IESHILͷࣄྫ ʲFYIʳΠϯλʔϯืूத@౦ژ ▸ ᶃձһొͳͲKPIվળࢪࡦͷ࣮ࢪʢ2िؒఆʣ ▸ ᶄ֤छSEOࢪࡦͷ࣮ࢪʢ1ϲ݄ఆʣ ▸ αʔόʔαΠυʗϑϩϯτΤϯυΤϯδχΞͱͯ͠ɺσΟϨΫλʔΤϯδχΞɺσβΠφͱ ڠۀͯ͠վળࢪࡦʹ͍ͭͯৄࡉΛ٧Ίɺ։ൃʙϦϦʔε͢ΔɻඞཁʹԠͯ͡ϦϦʔεޙͷσʔ λੳʗධՁͳͲߦ͏ɻ
▸ ༻ٕज़ɿHeroku, AWS, Rails, React, TypeScript, PostgreSQL, TresureDataͳͲɻ ▸ ᶅσʔλϑϩʔͷઃܭɾඋ(2िؒ~1ϲ݄ఆɺͦͷޙԠ૬ஊ) ▸ ϫʔΫϑϩʔΤϯδϯʹΑΔλεΫઃܭ/උΛߦ͍ɺଐਓԽ͍ͯ͠ΔλεΫͷղফޮԽ Λߦ͏ɻ ▸ ༻ٕज़: Digdag, Embulk, PostgreSQL, TreasureDataͳͲɻ
Q&A