SlideShare a Scribd company logo
1 of 32
Couchbase Connect
2015
体験談
株式会社ゴーズ 齋藤隆
Couchbase MeetUP Tokyo - #14
2015-07-22
Takashisite
Programmer / Designer
株式会社ゴーズ
http://www.g-ptr.com/
株式会社ゴーズ
http://www.g-ptr.com/
2015 / 06 / 02 – 04
Livi’s Studium @ Santa Clara
http://connect15.couchbase.com/sessions/
CBC15 - KEYWORD
Offline First (Offline First is the new Mobile First / GE Software)
IoT / BigData / (Realtime) Analytics
N1QL ( JSON + SQL)
DEMO
©2015 Couchbase Inc. 24
WHAT ARE WE BUILDING?
©2015 Couchbase Inc. 25
WHAT ARE WE BUILDING?
airline_24
{
"id": "24",
"type": "airline",
"iata": "AA",
"callsign": "American Airlines",
]
}
route_5966
{
"id": "5966",
"type": "route",
"airlineid": "airline_24",
"from": ”LAX",
"to": ”SFO",
"stops": "0",
"schedule": [
…
]
}
©2015 Couchbase Inc. 26
COMBINE ROUTE WITH AIRLINE
airline_24
{
"id": "24",
"type": "airline",
"iata": "AA",
"callsign": "American Airlines",
]
}
route_5966
{
"id": "5966",
"type": "route",
"airlineid": "airline_24",
"from": ”LAX",
"to": ”SFO",
"stops": "0",
"schedule": [
…
]
}
1. Read route_5966 document from Couchbase
2. Parse JSON
3. Pull out “airlineid” field
4. Read airline_24 document from Couchbase
5. Parse JSON
6. Pull out “callsign”
7. Display airline name
8. Throw away 2 objects
©2015 Couchbase Inc. 27
COMBINE ROUTE WITH AIRLINE
airline_24
{
"id": "24",
"type": "airline",
"iata": "AA",
"callsign": "American Airlines",
]
}
route_5966
{
"id": "5966",
"type": "route",
"airlineid": "airline_24",
"from": ”LAX",
"to": ”SFO",
"stops": "0",
"schedule": [
…
]
}
With Couchbase 4.0 and N1QL:
SELECT airline.callsign, route.from, route.to
FROM `travel-db` route
JOIN `travel-db` airline ON KEYS route.airlineid
WHERE route.from=`LAX` AND route.to=`SFO`
©2015 Couchbase Inc. 28
UNNEST
route_5966
{
"id": "5966",
"type": "route",
"airlineid": "airline_24",
"from": ”LAX",
"to": ”SFO",
"stops": "0",
"schedule": [
{"day": 1, "utc": "06:58:00", "flight": "AA348"},
{"day": 1, "utc": "09:30:00", "flight": "AA868"},
{"day": 1, "utc": "20:47:00", "flight": "AA483"},
{"day": 1, "utc": "06:58:00", "flight": "AA348"},
{"day": 2, "utc": "09:30:00", "flight": "AA868"},
{"day": 2, "utc": "20:47:00", "flight": "AA483"},
{"day": 3, "utc": "06:58:00", "flight": "AA348"},
{"day": 3, "utc": "09:30:00", "flight": "AA868"},
{"day": 3, "utc": "20:47:00", "flight": "AA483"},
...
]
}
©2015 Couchbase Inc.
RETURN FLIGHTS FOR A PARTICULAR DAY
4. Foreach in “schedule”:
a. Does it match requested day? Y/N
b. Does it match requested day? Y/N
c. Does it match requested day? Y/N
d. Does it match requested day? Y/N
e. Does it match requested day? Y/N
f. Does it match requested day? Y/N
g. Does it match requested day? Y/N
5. Display matching day, route and airline
names
6. Throw away objects
For each requested route:
1. Read in “route” document from Couchbase:
a. Instantiate object
b. Handle errors
c. Manage memory
2. Parse JSON:
a. Map transcoder
b. Manage versioning
c. Handle missing values
3. Read in “schedule” object
a. Instantiate object
b. Handle errors
c. Manage memory
©2015 Couchbase Inc.
RETURN FLIGHTS FOR A PARTICULAR DAY
route_5966
{
"id": "5966",
"type": "route",
"airlineid": "airline_24",
"from": ”LAX",
"to": ”SFO",
"stops": "0",
"schedule": [
{"day": 1, "utc": "06:58:00", "flight": "AA348"},
{"day": 1, "utc": "09:30:00", "flight": "AA868"},
{"day": 1, "utc": "20:47:00", "flight": "AA483"},
{"day": 1, "utc": "06:58:00", "flight": "AA348"},
{"day": 2, "utc": "09:30:00", "flight": "AA868"},
{"day": 2, "utc": "20:47:00", "flight": "AA483"},
SELECT airline.callsign, schedule.flight, schedule.utc,
route.from, route.to
FROM `travel-sample` route
UNNEST route.schedule schedule
JOIN `travel-sample` airline ON KEYS route.airlineid
WHERE route.from=`LAX` AND route.to=`SFO` AND schedule.day= `1`
まとめ
(来年もやるのかわかりませんが)
来年はみなさんもぜひご参加を
株式会社ゴーズ
http://www.g-ptr.com/
WE’RE HIRING!
新しいことに興味のある人探してます!

More Related Content

Similar to Coucbase Connect 2015 体験談

Understanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune QueriesUnderstanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune QueriesKeshav Murthy
 
Rapid API Prototyping Using Serverless Backend in the Cloud
Rapid API Prototyping Using Serverless Backend in the CloudRapid API Prototyping Using Serverless Backend in the Cloud
Rapid API Prototyping Using Serverless Backend in the CloudAmazon Web Services
 
0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...
0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...
0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...Amazon Web Services
 
Bridging Structured and Unstructred Data with Apache Hadoop and Vertica
Bridging Structured and Unstructred Data with Apache Hadoop and VerticaBridging Structured and Unstructred Data with Apache Hadoop and Vertica
Bridging Structured and Unstructred Data with Apache Hadoop and VerticaSteve Watt
 
炎炎夏日學 Android 課程 - Part3: Android app 實作
炎炎夏日學 Android 課程 - Part3: Android app 實作炎炎夏日學 Android 課程 - Part3: Android app 實作
炎炎夏日學 Android 課程 - Part3: Android app 實作Johnny Sung
 
Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018Masashi Shibata
 
Utilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and IndexingUtilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and IndexingKeshav Murthy
 
Querying Nested JSON Data Using N1QL and Couchbase
Querying Nested JSON Data Using N1QL and CouchbaseQuerying Nested JSON Data Using N1QL and Couchbase
Querying Nested JSON Data Using N1QL and CouchbaseBrant Burnett
 
Querying NoSQL with SQL - KCDC - August 2017
Querying NoSQL with SQL - KCDC - August 2017Querying NoSQL with SQL - KCDC - August 2017
Querying NoSQL with SQL - KCDC - August 2017Matthew Groves
 
0 to 100kmh with GraphQL. Rapid API Prototyping usingserverless backend in t...
0 to 100kmh with GraphQL.  Rapid API Prototyping usingserverless backend in t...0 to 100kmh with GraphQL.  Rapid API Prototyping usingserverless backend in t...
0 to 100kmh with GraphQL. Rapid API Prototyping usingserverless backend in t...Amazon Web Services
 
Exploring Modeling - Best Practices with Aerospike Data Types
Exploring Modeling - Best Practices with Aerospike Data TypesExploring Modeling - Best Practices with Aerospike Data Types
Exploring Modeling - Best Practices with Aerospike Data TypesRonen Botzer
 
Platform agnostic information systems development
Platform agnostic information systems developmentPlatform agnostic information systems development
Platform agnostic information systems developmentMark Jayson Fuentes
 
0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in...
 0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in... 0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in...
0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in...Amazon Web Services
 
DEV-017_Azure Functions overview and under the hood
DEV-017_Azure Functions overview and under the hoodDEV-017_Azure Functions overview and under the hood
DEV-017_Azure Functions overview and under the hooddecode2016
 
JAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) BridgeJAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) BridgeJosé Paumard
 
Developing and Deploying Apps with the Postgres FDW
Developing and Deploying Apps with the Postgres FDWDeveloping and Deploying Apps with the Postgres FDW
Developing and Deploying Apps with the Postgres FDWJonathan Katz
 
No sq ls-biggest-lie_sql-never-went-away_martin-esmann
No sq ls-biggest-lie_sql-never-went-away_martin-esmannNo sq ls-biggest-lie_sql-never-went-away_martin-esmann
No sq ls-biggest-lie_sql-never-went-away_martin-esmannMartin Esmann
 
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...
Reigniting the API Description Wars with TypeSpec and the Next Generation of...Reigniting the API Description Wars with TypeSpec and the Next Generation of...
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...Nordic APIs
 
Document Data Modelling with Couchbase Server 4.0
Document Data Modelling with Couchbase Server 4.0Document Data Modelling with Couchbase Server 4.0
Document Data Modelling with Couchbase Server 4.0Cihan Biyikoglu
 
Railway reservation(c++ project)
Railway reservation(c++ project)Railway reservation(c++ project)
Railway reservation(c++ project)Debashis Rath
 

Similar to Coucbase Connect 2015 体験談 (20)

Understanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune QueriesUnderstanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune Queries
 
Rapid API Prototyping Using Serverless Backend in the Cloud
Rapid API Prototyping Using Serverless Backend in the CloudRapid API Prototyping Using Serverless Backend in the Cloud
Rapid API Prototyping Using Serverless Backend in the Cloud
 
0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...
0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...
0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...
 
Bridging Structured and Unstructred Data with Apache Hadoop and Vertica
Bridging Structured and Unstructred Data with Apache Hadoop and VerticaBridging Structured and Unstructred Data with Apache Hadoop and Vertica
Bridging Structured and Unstructred Data with Apache Hadoop and Vertica
 
炎炎夏日學 Android 課程 - Part3: Android app 實作
炎炎夏日學 Android 課程 - Part3: Android app 實作炎炎夏日學 Android 課程 - Part3: Android app 實作
炎炎夏日學 Android 課程 - Part3: Android app 實作
 
Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018
 
Utilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and IndexingUtilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and Indexing
 
Querying Nested JSON Data Using N1QL and Couchbase
Querying Nested JSON Data Using N1QL and CouchbaseQuerying Nested JSON Data Using N1QL and Couchbase
Querying Nested JSON Data Using N1QL and Couchbase
 
Querying NoSQL with SQL - KCDC - August 2017
Querying NoSQL with SQL - KCDC - August 2017Querying NoSQL with SQL - KCDC - August 2017
Querying NoSQL with SQL - KCDC - August 2017
 
0 to 100kmh with GraphQL. Rapid API Prototyping usingserverless backend in t...
0 to 100kmh with GraphQL.  Rapid API Prototyping usingserverless backend in t...0 to 100kmh with GraphQL.  Rapid API Prototyping usingserverless backend in t...
0 to 100kmh with GraphQL. Rapid API Prototyping usingserverless backend in t...
 
Exploring Modeling - Best Practices with Aerospike Data Types
Exploring Modeling - Best Practices with Aerospike Data TypesExploring Modeling - Best Practices with Aerospike Data Types
Exploring Modeling - Best Practices with Aerospike Data Types
 
Platform agnostic information systems development
Platform agnostic information systems developmentPlatform agnostic information systems development
Platform agnostic information systems development
 
0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in...
 0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in... 0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in...
0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in...
 
DEV-017_Azure Functions overview and under the hood
DEV-017_Azure Functions overview and under the hoodDEV-017_Azure Functions overview and under the hood
DEV-017_Azure Functions overview and under the hood
 
JAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) BridgeJAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) Bridge
 
Developing and Deploying Apps with the Postgres FDW
Developing and Deploying Apps with the Postgres FDWDeveloping and Deploying Apps with the Postgres FDW
Developing and Deploying Apps with the Postgres FDW
 
No sq ls-biggest-lie_sql-never-went-away_martin-esmann
No sq ls-biggest-lie_sql-never-went-away_martin-esmannNo sq ls-biggest-lie_sql-never-went-away_martin-esmann
No sq ls-biggest-lie_sql-never-went-away_martin-esmann
 
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...
Reigniting the API Description Wars with TypeSpec and the Next Generation of...Reigniting the API Description Wars with TypeSpec and the Next Generation of...
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...
 
Document Data Modelling with Couchbase Server 4.0
Document Data Modelling with Couchbase Server 4.0Document Data Modelling with Couchbase Server 4.0
Document Data Modelling with Couchbase Server 4.0
 
Railway reservation(c++ project)
Railway reservation(c++ project)Railway reservation(c++ project)
Railway reservation(c++ project)
 

Recently uploaded

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Coucbase Connect 2015 体験談

  • 4.
  • 6. 2015 / 06 / 02 – 04 Livi’s Studium @ Santa Clara
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 22. CBC15 - KEYWORD Offline First (Offline First is the new Mobile First / GE Software) IoT / BigData / (Realtime) Analytics N1QL ( JSON + SQL)
  • 23. DEMO
  • 24. ©2015 Couchbase Inc. 24 WHAT ARE WE BUILDING?
  • 25. ©2015 Couchbase Inc. 25 WHAT ARE WE BUILDING? airline_24 { "id": "24", "type": "airline", "iata": "AA", "callsign": "American Airlines", ] } route_5966 { "id": "5966", "type": "route", "airlineid": "airline_24", "from": ”LAX", "to": ”SFO", "stops": "0", "schedule": [ … ] }
  • 26. ©2015 Couchbase Inc. 26 COMBINE ROUTE WITH AIRLINE airline_24 { "id": "24", "type": "airline", "iata": "AA", "callsign": "American Airlines", ] } route_5966 { "id": "5966", "type": "route", "airlineid": "airline_24", "from": ”LAX", "to": ”SFO", "stops": "0", "schedule": [ … ] } 1. Read route_5966 document from Couchbase 2. Parse JSON 3. Pull out “airlineid” field 4. Read airline_24 document from Couchbase 5. Parse JSON 6. Pull out “callsign” 7. Display airline name 8. Throw away 2 objects
  • 27. ©2015 Couchbase Inc. 27 COMBINE ROUTE WITH AIRLINE airline_24 { "id": "24", "type": "airline", "iata": "AA", "callsign": "American Airlines", ] } route_5966 { "id": "5966", "type": "route", "airlineid": "airline_24", "from": ”LAX", "to": ”SFO", "stops": "0", "schedule": [ … ] } With Couchbase 4.0 and N1QL: SELECT airline.callsign, route.from, route.to FROM `travel-db` route JOIN `travel-db` airline ON KEYS route.airlineid WHERE route.from=`LAX` AND route.to=`SFO`
  • 28. ©2015 Couchbase Inc. 28 UNNEST route_5966 { "id": "5966", "type": "route", "airlineid": "airline_24", "from": ”LAX", "to": ”SFO", "stops": "0", "schedule": [ {"day": 1, "utc": "06:58:00", "flight": "AA348"}, {"day": 1, "utc": "09:30:00", "flight": "AA868"}, {"day": 1, "utc": "20:47:00", "flight": "AA483"}, {"day": 1, "utc": "06:58:00", "flight": "AA348"}, {"day": 2, "utc": "09:30:00", "flight": "AA868"}, {"day": 2, "utc": "20:47:00", "flight": "AA483"}, {"day": 3, "utc": "06:58:00", "flight": "AA348"}, {"day": 3, "utc": "09:30:00", "flight": "AA868"}, {"day": 3, "utc": "20:47:00", "flight": "AA483"}, ... ] }
  • 29. ©2015 Couchbase Inc. RETURN FLIGHTS FOR A PARTICULAR DAY 4. Foreach in “schedule”: a. Does it match requested day? Y/N b. Does it match requested day? Y/N c. Does it match requested day? Y/N d. Does it match requested day? Y/N e. Does it match requested day? Y/N f. Does it match requested day? Y/N g. Does it match requested day? Y/N 5. Display matching day, route and airline names 6. Throw away objects For each requested route: 1. Read in “route” document from Couchbase: a. Instantiate object b. Handle errors c. Manage memory 2. Parse JSON: a. Map transcoder b. Manage versioning c. Handle missing values 3. Read in “schedule” object a. Instantiate object b. Handle errors c. Manage memory
  • 30. ©2015 Couchbase Inc. RETURN FLIGHTS FOR A PARTICULAR DAY route_5966 { "id": "5966", "type": "route", "airlineid": "airline_24", "from": ”LAX", "to": ”SFO", "stops": "0", "schedule": [ {"day": 1, "utc": "06:58:00", "flight": "AA348"}, {"day": 1, "utc": "09:30:00", "flight": "AA868"}, {"day": 1, "utc": "20:47:00", "flight": "AA483"}, {"day": 1, "utc": "06:58:00", "flight": "AA348"}, {"day": 2, "utc": "09:30:00", "flight": "AA868"}, {"day": 2, "utc": "20:47:00", "flight": "AA483"}, SELECT airline.callsign, schedule.flight, schedule.utc, route.from, route.to FROM `travel-sample` route UNNEST route.schedule schedule JOIN `travel-sample` airline ON KEYS route.airlineid WHERE route.from=`LAX` AND route.to=`SFO` AND schedule.day= `1`

Editor's Notes

  1. ・昔はデザイナーとして仕事してましたがいつのころからかプログラマー・エンジニアとしての仕事の方が多くなってきてしまった人です。
  2. ・株式会社ゴーズの人としてCouchbase Connect 2015に参加してきました。 ・あまり表に出てないので知らない人が多いと思いますが、実はみなさんが目にしたことがありそうなものを作ったりしています。
  3. ・日本科学未来館の「ジオ・コスモス」のテクニカルプロデュース | ディレクション | プロジェクトマネジメントを担当しています。 ・他にもトヨタ会館とか、展示系が多めですがいろいろとやらせて頂いています。
  4. ・ご興味ありましたらウェブサイトをご覧いただければ幸いです。
  5. ・Powerpointのテンプレート、流用させていただきました。 ・今日お話させていただくCouchbase Connect 2015ですが、そもそもこのイベント・カンファレンスが行われる、行われたというのをご存知のかたどれくらいいらっしゃいますか? ・カンファレンスの内容は General/Big Data/Developer/Operations/Architecture/Mobile の6つのセクションに分かれてそれぞれが並行してセッションが行われました。時間も限られているので、今日はセッションの内容というよりはどんなところでどんな雰囲気だったのかを写真中心にお伝えするのと、最後にちらっとキーノートでも行われたデモを再現してみようかなと思っています。 ・6月2日〜4日の3日間行われたのですが、初日はワークショップメインということで二日目から参加してきました。キーノートも2日目からでした。 ・場所はアメリカ・サンノゼ・サンタクララにあるリーバイススタジアムというところで行われていました。サンフランシスコ49'esの本拠地として新設されたばかりのスタジアムです。今日知ったんですが建設費が今話題の新国立競技場の最初の予算と同じ1300億円とのことでした。 ・実際に現地に行くまではっていうか現地についてからもこのどこでカンファレンスやるんだ?という感じの風景ですが。
  6. ・泊まったホテルですが、avatar hotelというリーバイススタジアムからほど近いモーテル風ホテルでして、後でCouchbase japanのスタッフの皆様と同じホテルということが判明しました。
  7. ・ホテルからにはSHUTTLEのお知らせボードも掲載されていました。15〜20分置きにと書いてはあるのですが結局最後までシャトルを目にすることはありませんでした。 ・初日は一応10分くらい待ってたんですが待ってる間に歩いてスタジアムに行く人が結構居たので面倒だということで歩いて向かうことに。結局二日間とも徒歩での移動でした。 ・とはいえ天気が良すぎる位いいので散歩としては最高な感じでしたね。
  8. 途中こんな感じで整備された歩道が続きます。これはavaya(アバイア)ですね。多分本社なんでしょうか。
  9. そんなこんなで20分ほど歩くとスタジアムが見えてきます。VTAライトレールの駅も近くにあるのでアクセスは良さそうでした。
  10. スタジアムです。この建物の中で各セッションが行われました。
  11. スタジアムに入ってからさっきの建物を見た写真です。上の方のガラス張りの部屋はプレス用の席などがありまして、モバイルのセッションはそのプレス用のフロアで行われました。
  12. キーノートはこの客席の下の空間で行われるので、客席を抜けてそこに移動してきます。 ちらっと見えてますが、このスタジアムにはxfinity(エクスフィニティ)という会社のWiFiがほぼすべての場所をカバーしていて、セッション中もネットワークにつながらない、ということはありませんでした。
  13. 前の写真にもちらっと写ってましたが、フィールドには象徴であるところのカウチ様が鎮座なされていました。
  14. 会場ではコーヒー・ドリンクがいつでも手にできるのと、朝はフルーツ等が、お昼にはビュッフェ形式のランチが、キーノートのあった2日目 のセッション終了後にはパーティーがあってビールとホットドックなどのスタジアムフードが提供されました。
  15. 3日目のランチですね。アメリカンイタリアンというか、そんな感じのメニューでした。スタジアムの客席で食べたので「俺はいま何をしているのだろうか、ここが天国か」という感じのよくわからない開放感がありました
  16. 会場にはいろいろとCouchbase関係のパネルが貼られていまして、このconnect15のメインとなるCouchbase Server 4.0のキーフューチャーなどが貼られていました。
  17. これはCouchbase Server 4.0の中でも大きな追加機能と言えるN1QL(ニッケルって言ってました。ちなみに最初はニコルって聞こえてました)ですね。セッションでも結構な時間をこのN1QLに割り当てていました。これは後でデモでお見せしたいと思います。
  18. 実際のセッション会場の様子です。こういった感じでスタジアムの建物の一区画にスクリーンを設置、椅子を並べてセッション会場としていました。部屋として区切られては居ないので自由に移動ができるので最初だけ聞いて別のセッションに移動する、というのも自由でした。 部屋で区切られたセッションだと途中で席を立つのがなかなかハードルが高いのでこういう形式のオープンな感じのセッションはとても良かったですね。
  19. これはモバイルのセッションですが、時勢を反映してかドローンとCouchbase Mobileというセッションがありまして、その中で自作ドローンの説明をしているところです。 「Capturing Drone Telemetry with Couchbase Mobile」というセッションだったのですが、かなりの時間をCouchbase Mobileではなくてドローンの説明に使うというセッションでした。 受けたセッションがmobileメインだったというのもあると思いますが、こんな感じでcouchbaseの製品により深く突っ込んだ内容というよりはCouchbaseと何かを組み合わせてこんな感じでデータが取れるよ、ビジネスができるよ、というセッションが多かった印象があります。
  20. ここにセッションのアーカイブがスライドと動画でまとめられてますので興味のあるセッションがあればご覧になることをお勧めします。 特にDIRECTVやGE、Ryanair(ライアンエアー)等の実際にCouchbaseを採用してる会社のセッションは実際の現場でどうやってCouchbaseの製品を使っているか等、参考になる部分がおおいのでお勧めです。 GEとRyanairは8月の東京でもセッションをやるみたいなので楽しみです。
  21. 今回のCouchbase connect 2015に参加して、全体を通して感じたキーワードなどを ・GE Softwareの人がセッションで言っていたOfflie First。特にmobileを採用する人たちがみんな言っていたのはOfflineサポート(ローカルデータベース)とSync(sync_gateway)の2つはこの製品の特徴であり積極的に使うべきところだということでした。最近発表されたmobile1.1ではiOS版でCore Data adapterがサポートされたりということでこの辺りの一層の強化が図られてるなーと。 ・IoT/BigData/Analyticsということでこの辺りはCouchbaseにかぎらずAsureであるとかGoogle cloud plathomeであるとかも同じキーワードで攻めてきていますが、今回のセッションでも多くの時間が取られていました。 ・最後にN1QLですが、これは個人的にはゲームチェンジャーになりうる可能性があるのではないかなと思うくらいな機能でして、これが入ったことでCouchbaseの強みがより増した感じはしました。 多分この3つはAzureやgoogle cloud plathomeでも実現可能かもしれませんが、それがひとつのプロダクトで可能であるというのはCouchbaseの利点の一つかなと(firebase + bigquery + drive storege + cloud computing + .....)みたいな感じでトータルで結構な料金を取られることになりそう。
  22. 簡単なデモなどを。これはキーノートで行われたデモで、デモのコンテンツというかそういうのはcouchbaseのウェブサイトでダウンロード可能です。ただ説明が付くとよりわかりやすいかなということで。。。 N1QLの詳しい内容は8月の東京のイベントでも行われると思うのでここでは簡単に。。。
  23. Changed title here – needs edit
  24. Changed title here – needs edit
  25. CSL: Spark please no more of that blue anywhere
  26. ・Google I/OやApple WWDCは行かなくてもネットに情報がが山ほど上がるけどCouchbase Connectは誰かが行かないと情報がない(特に日本語) ・勢いのある会社とそれに乗ろうとする開発者やマネージャーたちの集まる場所の雰囲気を味わうだけでも貴重な経験。 ・Couchbaseに精通したエンジニアがそもそも少ないので現地でのネットワーキングで海外の企業への転職の足がかりになるかも? ・シリコンバレー最高(気候的に)