Submit Search
Upload
サンプルで学ぶCassandraアプリケーションの作り方
•
Download as PPTX, PDF
•
0 likes
•
2,492 views
Yuki Morishita
Follow
Cassandra Summit Tokyo 2017 スライド
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 43
Download now
Recommended
PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選
Tomoya Kawanishi
RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門
Yuki Morishita
Helidon 概要
Helidon 概要
オラクルエンジニア通信
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪
Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪
崇之 清水
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
Yuki Morishita
SparkとCassandraの美味しい関係
SparkとCassandraの美味しい関係
datastaxjp
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
Yuki Morishita
Recommended
PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選
Tomoya Kawanishi
RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門
Yuki Morishita
Helidon 概要
Helidon 概要
オラクルエンジニア通信
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪
Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪
崇之 清水
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
Yuki Morishita
SparkとCassandraの美味しい関係
SparkとCassandraの美味しい関係
datastaxjp
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
Yuki Morishita
AWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCache
Amazon Web Services Japan
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
Amazon Web Services Japan
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
IBM Analytics Japan
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界
Yuki Morishita
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
Masahiko Sawada
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
Fargate起動歴1日の男が語る運用の勘どころ
Fargate起動歴1日の男が語る運用の勘どころ
Yuto Komai
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
Hisashi HATAKEYAMA
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
NTT DATA OSS Professional Services
事例で学ぶApache Cassandra
事例で学ぶApache Cassandra
Yuki Morishita
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
hideakikabuto
Datastax Enterpriseをはじめよう
Datastax Enterpriseをはじめよう
Yuki Morishita
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
メッセージキュー「Pulsar」の紹介 @OSC_20171007
メッセージキュー「Pulsar」の紹介 @OSC_20171007
Nozomi Kurihara
SpockからRSpecにきたときの気づき #coedorb
SpockからRSpecにきたときの気づき #coedorb
Youtarou TAKAHASHI
More Related Content
What's hot
AWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCache
Amazon Web Services Japan
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
Amazon Web Services Japan
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
IBM Analytics Japan
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界
Yuki Morishita
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
Masahiko Sawada
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
Fargate起動歴1日の男が語る運用の勘どころ
Fargate起動歴1日の男が語る運用の勘どころ
Yuto Komai
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
Hisashi HATAKEYAMA
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
NTT DATA OSS Professional Services
事例で学ぶApache Cassandra
事例で学ぶApache Cassandra
Yuki Morishita
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
hideakikabuto
Datastax Enterpriseをはじめよう
Datastax Enterpriseをはじめよう
Yuki Morishita
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
What's hot
(20)
AWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCache
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Fargate起動歴1日の男が語る運用の勘どころ
Fargate起動歴1日の男が語る運用の勘どころ
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
事例で学ぶApache Cassandra
事例で学ぶApache Cassandra
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
Datastax Enterpriseをはじめよう
Datastax Enterpriseをはじめよう
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Viewers also liked
メッセージキュー「Pulsar」の紹介 @OSC_20171007
メッセージキュー「Pulsar」の紹介 @OSC_20171007
Nozomi Kurihara
SpockからRSpecにきたときの気づき #coedorb
SpockからRSpecにきたときの気づき #coedorb
Youtarou TAKAHASHI
メッセージキュー「Pulsar」の紹介 @JJUG_20170927
メッセージキュー「Pulsar」の紹介 @JJUG_20170927
Nozomi Kurihara
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
Takakiyo Tanaka
Javaアプリケーションの モダナイゼーションアプローチ
Javaアプリケーションの モダナイゼーションアプローチ
CData Software Japan
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
masakazu matsubara
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門
Takuya Okada
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilation
Logico
Selenide or Geb 〜あなたはその時どちらを使う〜
Selenide or Geb 〜あなたはその時どちらを使う〜
Youtarou TAKAHASHI
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
Masatoshi Tada
Viewers also liked
(11)
メッセージキュー「Pulsar」の紹介 @OSC_20171007
メッセージキュー「Pulsar」の紹介 @OSC_20171007
SpockからRSpecにきたときの気づき #coedorb
SpockからRSpecにきたときの気づき #coedorb
メッセージキュー「Pulsar」の紹介 @JJUG_20170927
メッセージキュー「Pulsar」の紹介 @JJUG_20170927
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
Javaアプリケーションの モダナイゼーションアプローチ
Javaアプリケーションの モダナイゼーションアプローチ
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilation
Selenide or Geb 〜あなたはその時どちらを使う〜
Selenide or Geb 〜あなたはその時どちらを使う〜
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
Similar to サンプルで学ぶCassandraアプリケーションの作り方
とある AWS サービスの運用移管〜データストア編〜 #jawsmeguro
とある AWS サービスの運用移管〜データストア編〜 #jawsmeguro
IKEDA Kiyoshi
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
Amazon Web Services Japan
Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18
Masatomo Ito
ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発
政雄 金森
Google Compute EngineとPipe API
Google Compute EngineとPipe API
maruyama097
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline API
maruyama097
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
Insight Technology, Inc.
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
Couchbase Japan KK
Tech Dojo 02/09 IBM Japan CSM
Tech Dojo 02/09 IBM Japan CSM
勇 黒沢
Introduction to New CloudWatch Agent
Introduction to New CloudWatch Agent
Noritaka Sekiyama
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by 丹田 賢
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by 丹田 賢
CODE BLUE
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
Atsushi Fukui
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Treasure Data, Inc.
Migration to AWS part2
Migration to AWS part2
Kameda Harunobu
(2017.6.2) Azure HDInsightで実現するスケーラブル分析環境
(2017.6.2) Azure HDInsightで実現するスケーラブル分析環境
Mitsutoshi Kiuchi
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
FumieNakayama
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
Insight Technology, Inc.
AWS Summit New York 2017 Keynote Recap
AWS Summit New York 2017 Keynote Recap
Eiji Shinohara
BPStudy20121221
BPStudy20121221
Shinichiro Takezaki
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Chihiro Ito
Similar to サンプルで学ぶCassandraアプリケーションの作り方
(20)
とある AWS サービスの運用移管〜データストア編〜 #jawsmeguro
とある AWS サービスの運用移管〜データストア編〜 #jawsmeguro
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18
ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発
Google Compute EngineとPipe API
Google Compute EngineとPipe API
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline API
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
Tech Dojo 02/09 IBM Japan CSM
Tech Dojo 02/09 IBM Japan CSM
Introduction to New CloudWatch Agent
Introduction to New CloudWatch Agent
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by 丹田 賢
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by 丹田 賢
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Migration to AWS part2
Migration to AWS part2
(2017.6.2) Azure HDInsightで実現するスケーラブル分析環境
(2017.6.2) Azure HDInsightで実現するスケーラブル分析環境
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
AWS Summit New York 2017 Keynote Recap
AWS Summit New York 2017 Keynote Recap
BPStudy20121221
BPStudy20121221
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
More from Yuki Morishita
Apache cassandra v4.0
Apache cassandra v4.0
Yuki Morishita
DataStax EnterpriseでApache Tinkerpop入門
DataStax EnterpriseでApache Tinkerpop入門
Yuki Morishita
DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析
Yuki Morishita
分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise Graph
Yuki Morishita
Apache Cassandra最新情報まとめ
Apache Cassandra最新情報まとめ
Yuki Morishita
How you can contribute to Apache Cassandra
How you can contribute to Apache Cassandra
Yuki Morishita
CQL3 in depth
CQL3 in depth
Yuki Morishita
More from Yuki Morishita
(7)
Apache cassandra v4.0
Apache cassandra v4.0
DataStax EnterpriseでApache Tinkerpop入門
DataStax EnterpriseでApache Tinkerpop入門
DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析
分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise Graph
Apache Cassandra最新情報まとめ
Apache Cassandra最新情報まとめ
How you can contribute to Apache Cassandra
How you can contribute to Apache Cassandra
CQL3 in depth
CQL3 in depth
Recently uploaded
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Recently uploaded
(8)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
サンプルで学ぶCassandraアプリケーションの作り方
1.
サンプルで学ぶ Cassandraアプリケーションの 作り方 Cassandra Summit Tokyo
2017 森下 雄貴 (DataStax Japan合同会社)
2.
スピーカー 森下 雄貴 (yuki@datastax.com) - Solution
Architect (ときどきSoftware Developer) @ DataStax - Apache Cassandra™コミッター © DataStax, All Rights Reserved.2
3.
Apache Cassandra™ を使ってスケーラブルなアプリケー ションを作りたい! -
サンプルアプリケーションがあることを知ってもらう。 - Apache Cassandraデータモデリングの概要を知る。 - ドライバーの使い方を知る。 © DataStax, All Rights Reserved.3 今日の目標
4.
KillrVideo © DataStax, All
Rights Reserved.4 https://killrvideo.github.io/
5.
KillrVideo Apache Cassandra™ /
DataStax Enterprise リファレンスアプリケーション – https://killrvideo.github.io – オープンソース (APLv2) – スケーラブルなマイクロサービスアーキテクチャ • サービスは Node.js/C#/Java の各言語で実装 – データベース層はApache Cassandra / DSE • データモデリングのサンプル • ドライバーの利用サンプル 5 © DataStax, All Rights Reserved.
6.
KillrVideo © DataStax, All
Rights Reserved.6
7.
KillrVideo 各層がスケーラブル 7 KillrVideo Web アプリケーション (node.js) KillrVideo マイクロサービス Apache Cassandra
/ DataStax Enterprise © DataStax, All Rights Reserved.
8.
KillrVideo デモ環境 8 KillrVideo Web アプリケーション KillrVideo マイクロサービス Apache
Cassandra / DataStax Enterprise 1ノード etcd: サービスディスカバリー サンプルデータ生成アプリ © DataStax, All Rights Reserved.
9.
利用している技術 - Docker - 各構成要素(Web/サービス/DB)をコンテナ化 -
node.js - フロントエンドWebアプリケーション - React/Redux/Falcor - マイクロサービスの一つの実装言語 - gRPC - サービスのインターフェース定義 - Java - Spring Frameworkを利用してサービスを実装 - DataStax Enterprise - Apache Cassandraをコアとしたデータベース © DataStax, All Rights Reserved.9
10.
タスク: コメント機能を作る © DataStax,
All Rights Reserved.10
11.
タスク: コメント機能を作る - コメント機能の概要 -
ユーザーが動画にコメントを書く - 各動画のページにその動画に書かれたコメントを新着順に表示する - ユーザーは自分が投降したコメントをユーザーのページで見ることができる © DataStax, All Rights Reserved.11
12.
API CommentService コメント用のサービス - commentOnVideo -
動画に紐づくコメントを登録する - getCommentsByVideo - 動画に紐づくコメントを取得する - getCommentsByUser - ユーザーに紐づくコメントを取得する © DataStax, All Rights Reserved.12
13.
gRPCサービスの定義 // Manages comments service
CommentsService { // Add a new comment to a video rpc CommentOnVideo(CommentOnVideoRequest) returns (CommentOnVideoResponse); // Get comments made by a user rpc GetUserComments(GetUserCommentsRequest) returns (GetUserCommentsResponse); // Get comments made on a video rpc GetVideoComments(GetVideoCommentsRequest) returns (GetVideoCommentsResponse); } © DataStax, All Rights Reserved.13
14.
データモデリング © DataStax, All
Rights Reserved.14
15.
コメント機能のデータモデリング 概念データ モデル アプリケー ションワー クフロー マッピング 論理データ モデル 最適化 物理データ モデル Cassandraデータモデリングの流れ © DataStax, All
Rights Reserved.15
16.
Cassandraデータモデリングの原則 データを知る クエリを知る 非正規化 – データをネストする – データを重複して持つ ©
DataStax, All Rights Reserved.16
17.
データを知る 概念データモデル / ERD ©
DataStax, All Rights Reserved.17 ユーザー 動画コメント する m n id 名前 … コメント タイムス タンプ id タイトル …
18.
クエリを知る アプリケーションワークフロー © DataStax, All
Rights Reserved.18
19.
クエリを知る © DataStax, All
Rights Reserved.19 動画に紐づくコメントを 取得する Q2 ユーザーに紐づくコメントを 取得する Q1 コメントサービスのアプリケーションワークフロー Q1: ユーザーID をもとに動画のコメントを 投稿順(新しいものを先) に取得 Q2: ビデオID をもとにユーザーからのコメントを 投稿順(新しいものを先) に取得
20.
なぜクエリを知ることが重要? - クエリがスキーマデザインを決める - クエリの変更はスキーマの変更を伴う可能性が高い -
Apache Cassandra™が得意なアクセスパターンに落とす - 単一パーティションへのクエリー ◎ - 少数のパーティションへのクエリー 〇 - テーブルスキャン × - 複数テーブルへのアクセス × © DataStax, All Rights Reserved.20
21.
非正規化 - 非正規化 - データをネストする -
クラスタリングカラム - ユーザー定義型 - コレクション型 - データを重複して持つ © DataStax, All Rights Reserved.21
22.
非正規化 - クラスタリングカラム - パーティションキーが親のエンティティを識別 -
クラスタリングカラムの値が子のエンティティを識別 - クラスタリングカラムを増やすことで多階層のネストを実現 © DataStax, All Rights Reserved.22
23.
非正規化 - データを重複して持つ - クライアントサイドJOINよりも重複して持つほうがスケールする ©
DataStax, All Rights Reserved.23
24.
概念データ モデル アプリケー ションワー クフロー マッピング 論理データ モデル 最適化 物理データ モデル 論理データモデルの成果物 © DataStax, All
Rights Reserved.24 ERDとクエリに マッピングルールとパターンを適用 論理データモデリングの成果物として Chebotkoダイアグラムを作成
25.
Chebotkoダイアグラム © DataStax, All
Rights Reserved.25
26.
Chebotkoダイアグラム © DataStax, All
Rights Reserved.26
27.
Chebotkoダイアグラム © DataStax, All
Rights Reserved.27
28.
Chebotkoダイアグラム © DataStax, All
Rights Reserved.28
29.
Chebotkoダイアグラム © DataStax, All
Rights Reserved.29
30.
コメント機能のChebotkoダイアグラム © DataStax, All
Rights Reserved.30 Q2Q1 Q1: ユーザーID をもとに動画のコメントを 投稿順(新しいものを先) に取得 Q2: ビデオID をもとにユーザーからのコメントを 投稿順(新しいものを先) に取得 comments_by_user comments_by_video userId commentedAt commentId videoId comment videoId commentedAt commentId userId comment K C↑ C K C↑ C
31.
コメント機能のChebotkoダイアグラム TimeUUID - Apache Cassandra
のデータ型の一つ - UUID version 1 - IDの中にタイムスタンプを持つ → ソート可能 © DataStax, All Rights Reserved.31
32.
コメント機能のChebotkoダイアグラム © DataStax, All
Rights Reserved.32 Q2Q1 Q1: ユーザーID をもとに動画のコメントを 投稿順(新しいものを先) に取得 Q2: ビデオID をもとにユーザーからのコメントを 投稿順(新しいものを先) に取得 comments_by_user comments_by_video userId commentId videoId comment videoId commentId userId comment K C↑ K C↑
33.
コメント機能のデータモデリング CQL DDL © DataStax,
All Rights Reserved.33 CREATE TABLE comments_by_video ( videoid uuid, commentid timeuuid, userid uuid, comment text, PRIMARY KEY (videoid, commentid) ) WITH CLUSTERING ORDER BY (commentid DESC); CREATE TABLE comments_by_user ( userid uuid, commentid timeuuid, videoid uuid, comment text, PRIMARY KEY (userid, commentid) ) WITH CLUSTERING ORDER BY (commentid DESC); Q1: SELECT commentid, videoid, comment FROM comments_by_user WHERE userid = ? Q2: SELECT commentid, userid, comment FROM comments_by_video WHERE videoid = ?
34.
アプリケーションの実装 © DataStax, All
Rights Reserved.34
35.
アプリケーションの実装 - DataStaxドライバーのセットアップ - Apache
Cassandra用 - DataStax Java Driver - https://github.com/datastax/java-driver - APLv2 - API: Cluster / Session - DataStax Enterprise用 - DataStax Enterprise Java Driver - https://github.com/datastax/java-driver-dse - ライセンスは独自 - API: DseCluster / DseSession © DataStax, All Rights Reserved.35
36.
アプリケーションの実装 - Apache Cassandra
/ DataStax Enterprise への接続 © DataStax, All Rights Reserved.36 Builder clusterConfig = new Builder(); clusterConfig.addContactPoints(cassandraHosts) .withPort(cassandraPort) .withClusterName(CLUSTER_NAME); … DseCluster dseCluster = clusterConfig.build(); return dseCluster.connect(); // DseSessionオブジェクトを返す
37.
アプリケーションの実装 - コメントを登録する - コメントが登録されるとふたつのテーブルに登録しなければならない -
バッチ機能を利用してINSERT © DataStax, All Rights Reserved.37 PreparedStatement commentsByUserPrepared = dseSession.prepare( "INSERT INTO killrvideo.comments_by_user (userid, commentid, comment, videoid) VALUES (?, ?, ?, ?)" ).setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM); … BoundStatement bs1 = commentsByUserPrepared.bind(userId, commentId, comment, videoId); BoundStatement bs2 = commentsByVideoPrepared.bind(videoId, commentId, comment, userId); … final BatchStatement batchStatement = new BatchStatement(BatchStatement.Type.LOGGED); batchStatement.add(bs1); batchStatement.add(bs2); batchStatement.setDefaultTimestamp(now.getTime()); FutureUtils.buildCompletableFuture(dseSession.executeAsync(batchStatement)) …
38.
アプリケーションの実装 - コメントを取得する - ステートメントの組み立て ©
DataStax, All Rights Reserved.38 PreparedStatement getVideoComments_startingPointPrepared = dseSession.prepare( QueryBuilder.select() .column("video_id") .column("comment_id") .column("user_id") .column("comment") .fcall("toTimestamp", QueryBuilder.column("comment_id")).as("comment_timestamp") .from("killrvideo", "comments_by_video") .where(QueryBuilder.eq("video_id", QueryBuilder.bindMarker())) .and(QueryBuilder.lte("comment_id", QueryBuilder.bindMarker())) ).setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM);
39.
アプリケーションの実装 - コメントを取得する - 取得件数の指定とページング ©
DataStax, All Rights Reserved.39 final Optional<String> pagingState = Optional.ofNullable(request.getPagingState()) .filter(StringUtils::isNotBlank); … statement = getUserComments_startingPointPrepared.bind() .setUUID("userid", fromString(userId.getValue())) .setUUID("commentid", fromString(startingCommentId.getValue())); … statement.setFetchSize(request.getPageSize()); pagingState.ifPresent( x -> statement.setPagingState(PagingState.fromString(x))); … Optional.ofNullable(commentResult.getExecutionInfo().getPagingState()) .map(PagingState::toString) .ifPresent(builder::setPagingState);
40.
アプリケーションの実装 - コメントを取得する - クエリの実行結果の取得 ©
DataStax, All Rights Reserved.40 FutureUtils.buildCompletableFuture(dseSession.executeAsync(statement)) .handle((commentResult, ex) -> { … int remaining = commentResult.getAvailableWithoutFetching(); for (Row row : commentResult) { CommentsByUser commentByUser = new CommentsByUser( row.getUUID("userid"), row.getUUID("commentid"), row.getUUID("videoid"), row.getString("comment") ); commentByUser.setDateOfComment( row.getTimestamp("comment_timestamp")); builder.addComments(commentByUser.toUserComment()); if (--remaining == 0) break; } …
41.
アプリケーションの実装 - その他の実装サンプル - オブジェクトマッパーの利用 -
DSEの機能を利用して - グラフ形式にデータを格納して、リアルタイムレコメンデーションのクエリを実行 - 全文検索インデックスを利用した検索 © DataStax, All Rights Reserved.41
42.
さらに詳しく © DataStax, All
Rights Reserved.42
43.
もっと詳しく! - ダウンロードとフリーのオンライントレーニング - 開発用途に無償利用可能 -
DS201: Apache Cassandra入門 - DS220: データモデリング - https://academy.datastax.com/ © DataStax, All Rights Reserved.43
Editor's Notes
KillrVideoの説明
デモ - ログイン - 動画ページ
デモ環境 マイクロサービス部分はnode.jsアプリケーション
コメント機能デモ
重複して持つため、Cassandraは"書き込み時にJOIN"するような形になる。複数のテーブルへ書き込みが発生する場合もある。 RDBでは正規化して"読み込み時にJOIN"。 クエリー: ある特定の役者(actor)が登場している映画を探したい 左: クライアント側でJOIN。 もし役者(actor)に紐づく動画(video)が10ある場合、その10パーティション分をクエリーしなければならない。それらは10の違うノードにあるかもしれない。 右: JOINの必要がない。1つのパーティションにアクセスするだけ。
Download now