SlideShare a Scribd company logo
1 of 52
サンプルアプリケーションで学ぶ
Apache Cassandraを使った
Javaアプリケーションの作り方
JJUG CCC 2017 Fall
森下 雄貴 (DataStax Japan合同会社)
スピーカー
森下 雄貴
(yuki@datastax.com)
Solution Architect (ときどきSoftware Developer) @ DataStax
Apache Cassandraコミッター
2
• スケーラブルなJavaアプリケーション
を作りたい!
• Apache Cassandra™ を使ったサンプ
ルアプリケーションがあることを知っ
てもらう。
• アーキテクチャの参考に
• フレームワークやドライバーの使
い方の参考に
• データモデリングの参考に
3
今日の目標
アプリケーションの変遷
4
クライアント/
サーバー クラウド
1990年代 現在
Web
2000年代
それを支えるデータベース
5
スケールアウトするアプリケーション層
スケールアウトするデータ層
6
The Apache Cassandra database is the right choice when
you need scalability and high availability without
compromising performance.
7
8
スケーラブルなアプリケーションを作らないといけない。
Apache Cassandraを使えばいけそうだ。
でも、参考になるソースコードないの?
あります!
9
http://killrvideo.com/
KillrVideo
10
https://killrvideo.github.io/
KillrVideo
Apache Cassandra™ / DataStax Enterprise リファレンスアプリ
ケーション
– https://killrvideo.github.io
– オープンソース (APLv2)
– スケーラブルなマイクロサービスアーキテクチャ
• サービスは Node.js/C#/Java の各言語で実装
– データベース層はDSE / Apache Cassandra
• データモデリングのサンプル
• ドライバーの利用サンプル
11
DataStax
Enterprise
Apache Cassandra
を中核にした製品
• サポート
• プロフェッショ
ナルサービス
• トレーニング
• 開発用に無償で
利用可能
KillrVideo
各層をスケーラブルに(できるよう想定)
13
KillrVideo Web
アプリケーション
KillrVideo
マイクロサービス
Apache Cassandra /
DataStax Enterprise
KillrVideo
Java版デモ環境
https://github.com/killrvideo/killrvideo-java
14
KillrVideo Web
アプリケーション
KillrVideo
マイクロサービス Apache Cassandra /
DataStax Enterprise
1ノード
etcd: サービスディスカバリー
サンプルデータ生成アプリ
デモ環境を起動する
killrvideo-java> ./lib/killrvideo-docker-common/create-environment.sh
# もしくはWindowの場合、create-environment.ps1
# docker-composeに必要な環境変数を記述した.envファイルを作成する
killrvideo-java> docker-compose up -d registrator
# サービスレジストリの起動
killrvideo-java> docker-compose up –d dse
# DataStax Enterpriseの起動
# 初回起動の場合は、スキーマの作成等を行うため時間がかかる
# docker-compose logs --tail=10 –f dseでログを確認し、"DSE startup
complete."がでるまで待ちましょう
15
デモ環境を起動する
killrvideo-java> KILLRVIDEO_DOCKER_IP=172.xx.0.1
KILLRVIDEO_HOST_IP=xxx.xxx.xxx.xxx mvn spring-boot:run
# 環境変数を設定してSpring Bootアプリケーションを実行
killrvideo-java> docker-compose up -d web
# Web層の起動
# http://<KILLRVIDEO_HOST_IP>:3000 にアクセス
killrvideo-java> docker-compose up –d generator
# サンプルデータ生成アプリを起動
# しばらくするとデータが見れるようになるはず
16
Web
17
Web
Node.jsで実装 (https://github.com/KillrVideo/killrvideo-web)
クライアント
– React + Redux + Falcor(データフェッチ)
サーバー
– Express
– セッション管理にCassandraを利用
• デモではマイクロサービスと同一のクラスター
• 実際に利用する場合は専用のクラスターを用意
– ユーザー認証はマイクロサービスに問い合わせ
18
Web
もしJavaでやるとしたら…
spring-session
– 自前で SessionRepository を実装
– https://github.com/honorem/spring-session-cassandra 参考
Apache Shiro
– 自前で SessionDAO を実装
– https://github.com/lhazlewood/shiro-cassandra-sample 参考
19
マイクロサービス
20
マイクロサービスの実装
- gRPCを利用 (https://grpc.io/)
– プログラミング言語に非依存でサービスの記述
– 様々なプログラミング言語をサポート
• Java / Python / C++ / Go / Ruby …
• KillrVideoではJava / Node.js / C# でサービスを実装
- Apache Cassandraへのアクセスにドライバーの様々な機能を
利用
– ステートメントの非同期実行
– データマッパーの利用
– バッチ実行
- サービス間の連携にイベントバスを利用
- デモ用に一つのプロセスに複数のサービスを定義しているので、
GuavaのEventBusを利用
- プロセスを分ける場合はApache Kafkaなどを検討
21
gRPCとは?
- Google の内部で利用していたRPCフレームワーク(Stubby) を
もとにオープンソース
- Protocol Buffer v3を利用し、プログラミング言語に非依存なイ
ンターフェース定義
- HTTP/2をもとにした効率の良い通信と、双方向ストリーミン
グの実現
- 認証やトレースなどもプラグイン可能
22
gRPCサービスの定義
(./lib/killrvideo-service-protos/src 以下)
// 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);
}
23
gRPCサービスの定義
(./lib/killrvideo-service-protos/src 以下)
// Get a page of comments made by a specific user
message GetUserCommentsRequest {
killrvideo.common.Uuid user_id = 1;
int32 page_size = 2;
killrvideo.common.TimeUuid starting_comment_id = 3;
string paging_state = 16;
}
// Response when getting a page of comments made by a user
message GetUserCommentsResponse {
killrvideo.common.Uuid user_id = 1;
repeated UserComment comments = 2;
string paging_state = 3;
}
24
スタブの自動生成
- Mavenプラグインを用いてIDL(インターフェース定義言語)か
らJavaのスタブコードを自動生成
25
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.0</version>
<configuration>
<protoSourceRoot>${basedir}/lib/killrvideo-service-protos/src</protoSourceRoot>
<protocArtifact>com.google.protobuf:protoc:3.0.0:exe:${os.detected.classifier}</protocArtifact
>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-
java:0.14.0:exe:${os.detected.classifier}</pluginArtifact>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
サービスの実装
- target/generated-sources 以下に自動生成されたクライアント
とサービスインターフェースのJavaコードが出力される
- 基本はStreamObserverを利用した非同期呼び出し
- クライアントは非同期実行、同期実行、Futureを利用する非同
期実行の3種類が生成される
26
// CommentServiceGrpc.java
public static interface CommentsService {
public void commentOnVideo(
killrvideo.comments.CommentsServiceOuterClass.CommentOnVideoRequest request,
io.grpc.stub.StreamObserver<killrvideo.comments.CommentsServiceOuterClass.CommentOnV
ideoResponse> responseObserver);
…
}
SpringからgRPCサーバーを起動
KillrVideo-javaの場合:
- コンポーネントの一つとしてGrpcServerを定義
– @PostConstructでサービスの登録とサーバー作成、スタート
- そのままではすぐ終了してしまうので、ThreadFactoryを用い
てデーモンスレッドを生成
– KillrVideoThreadFactoryクラス
- JVMシャットダウンフックでサーバー停止
27
SpringからgRPCサーバーを起動
他の方法:
- スレッドを立ち上げて Server#awaitTermination() を呼び出す
- https://github.com/LogNet/grpc-spring-boot-starter を使う
– やっていることは基本的に上と同じ
28
Apache Cassandraに接続する
ドライバーのセットアップ
– Apache Cassandra用
• DataStax Java driver for Apache Cassandra
• https://github.com/datastax/java-driver
• APLv2
– DataStax Enterprise用
• Java driver for DataStax Enterprise
• https://github.com/datastax/java-driver-dse
• ライセンスは独自(DSEにしか接続できない)
• DSE固有の機能を使うためにJava Driverを拡張
– 外部認証、グラフデータベースなど
29
Apache Cassandraに接続する
java-driver と java-driver-dse の基本的な使い方は一緒
接続するために使うクラスが違う
– Cluster (java-driver) VS DseCluster (java-driver-dse)
– Session (java-driver) VS DseSession (java-driver-dse)
30
Apache Cassandraに接続する
- Apache Cassandra用ドライバーのダウンロード
- Group ID: com.datastax.cassandra
- Artifact IDs:
- cassandra-driver-code
- 本体
- cassandra-driver-mapping
- オブジェクトマッパー (オプション)
- cassandra-driver-extra
- 追加の型マッピング (オプション)
31
Apache Cassandraに接続する
DSEConfigurationクラスでクラスタへ接続し、セッションオブ
ジェクトを作成
32
Builder clusterConfig = new Builder();
clusterConfig.addContactPoints(cassandraHosts)
.withPort(cassandraPort)
.withClusterName(CLUSTER_NAME);
…
DseCluster dseCluster = clusterConfig.build(); // java-driverの場合はClusterオブジェクト
return dseCluster.connect(); // DseSessionオブジェクトを返す
Apache Cassandraに接続する
クラスタービルダー([Dse]Cluster.Builder)の役割
– 最初に接続するノード(IPアドレスとポート)を指定
• このノードからクラスターの情報をドライバー側に得る
– クラスタービルダーを通じて様々な設定を行う
• 認証
• ロードバランス
• リトライ
• コネクションプーリング
– 実際にステートメントを実行するセッションオブジェクト([Dse]Session)
を生成
クラスターとセッションのオブジェクトは、アプリケーションに
一つあれば十分
33
Apache Cassandraに接続する
コネクションプーリング
– セッションオブジェクトがコネクションプールを持つ
– 基本的にクラスター内の起動しているノードすべてに対してコネクション
を確立
– 最近のCassandraは一つのクライアントコネクションで最大32kのリク
エストを行うことができるため、デフォルトでコネクションプールの設定
は1
34
Cluster Session Pool Connection Request
1 n 1 n 1 n 1 32k
Cassandraの
データモデリング
35
データモデリングの原則
データを知る
クエリを知る
非正規化
– データをネストする
– データを重複して持つ
36
なぜ?
クエリがスキーマデザインを決める
– クエリの変更はスキーマの変更を伴う可能性が高い
Apache Cassandraが得意なアクセスパターンは限られる
– 単一パーティションへのクエリー ◎
– 少数のパーティションへのクエリー 〇
– テーブルスキャン ×
– 複数テーブルへのアクセス ×
– Cassandraはクラスター運用が前提。テーブルスキャンは全ノードへの
アクセスにつながる
37
例: コメントサービス
コメントサービスの機能概要
– ユーザーが動画に書くコメントを登録
– 各動画に書かれたコメントを新着順に返す
– あるユーザーが投稿したコメントの一覧を返す
38
コメントサービスのモデリング
39
Q2Q1
Q1: ユーザーID をもとに動画のコメントを 投稿順(新しいものを先) に取得
Q2: ビデオID をもとにユーザーからのコメントを 投稿順(新しいものを先) に取得
comments_by_user comments_by_video
userId
commentId
videoId
comment
videoId
commentId
userId
comment
K
C↑
K
C↑
コメントサービスのモデリング
CQL DDL
40
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 = ?
詳しくは
RDB開発者のためのApache Cassandraデータモデリング入門
https://www.slideshare.net/yukim/rdbapache-cassandra
41
ドライバーの利用
42
バッチ登録
コメントを登録する
– コメントが登録されるとふたつのテーブルに登録しなければならない
• バッチ機能を利用してINSERT
43
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))
…
クエリビルダーの利用
コメントを取得する
– ステートメントの組み立て
44
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);
ページング
コメントを取得する
– 取得件数の指定とページング
45
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);
実行結果の取得
コメントを取得する
– クエリの実行結果の取得
– 自動ページング(デフォルトページサイズ: 5000)
46
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;
}
…
データマッパー
エンティティクラスの準備
47
@Table(keyspace = KEYSPACE, name = "video_ratings")
public class VideoRating {
@PartitionKey
private UUID videoid;
@Column(name = "rating_counter")
private Long ratingCounter;
@Column(name = "rating_total")
private Long ratingTotal;
…
}
データマッパー
マッパーの準備
48
// DSECongifuration クラス
@Bean
public MappingManager getMappingManager(DseSession session) {
return new MappingManager(session);
}
// MappingConfiguration クラス
@Bean
public Mapper<VideoRating> videoRatingMapper() { return
manager.mapper(VideoRating.class); }
データマッパー
マッパーの利用
49
FutureUtils.buildCompletableFuture(videoRatingMapper.getAsync(videoId))
.handle((ratings, ex) -> {
if (ex != null) {
…
responseObserver.onError(…);
} else {
if (ratings != null) {
responseObserver.onNext((ratings.toRatingResponse()));
} else {
responseObserver.onNext(…);
}
responseObserver.onCompleted();
}
return ratings;
});
アプリケーションの実装
その他の実装サンプル
– DSEの機能を利用して
• グラフDBにデータを格納して、リアルタイムレコメンデーションを
行うグラフクエリを実行
• 全文検索インデックスを利用した検索(node.js版)
50
まとめ
51
まとめ
https://killrvideo.github.io
- マイクロサービスを利用したスケーラブルなアプリケーション
を作るときに参考になるソースコードがあります!
– アーキテクチャの参考に
– フレームワークやドライバーの使い方の参考に
– データモデリングの参考に
なります。
52

More Related Content

What's hot

Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
事例で学ぶApache Cassandra
事例で学ぶApache Cassandra事例で学ぶApache Cassandra
事例で学ぶApache CassandraYuki Morishita
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようShinsuke Sugaya
 
Datastax Enterpriseをはじめよう
Datastax EnterpriseをはじめようDatastax Enterpriseをはじめよう
Datastax EnterpriseをはじめようYuki Morishita
 
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)Masaya Tahara
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -Yahoo!デベロッパーネットワーク
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門Akihiro Kuwano
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントNTT DATA OSS Professional Services
 
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpYahoo!デベロッパーネットワーク
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化Kumazaki Hiroki
 
RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門Yuki Morishita
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Masahito Zembutsu
 

What's hot (20)

Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
事例で学ぶApache Cassandra
事例で学ぶApache Cassandra事例で学ぶApache Cassandra
事例で学ぶApache Cassandra
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 
Datastax Enterpriseをはじめよう
Datastax EnterpriseをはじめようDatastax Enterpriseをはじめよう
Datastax Enterpriseをはじめよう
 
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
 

Viewers also liked

Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugSpring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugMasatoshi Tada
 
JVM上で動くPython処理系実装のススメ
JVM上で動くPython処理系実装のススメJVM上で動くPython処理系実装のススメ
JVM上で動くPython処理系実装のススメYoshiaki Shibutani
 
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門Takuya Okada
 
JJUG初心者のためのJava/JJUG講座
JJUG初心者のためのJava/JJUG講座JJUG初心者のためのJava/JJUG講座
JJUG初心者のためのJava/JJUG講座Yusuke Suzuki
 
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にJava SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にTaku Miyakawa
 
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilationAnother compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilationLogico
 
Selenide or Geb 〜あなたはその時どちらを使う〜
Selenide or Geb 〜あなたはその時どちらを使う〜Selenide or Geb 〜あなたはその時どちらを使う〜
Selenide or Geb 〜あなたはその時どちらを使う〜Youtarou TAKAHASHI
 
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017tty fky
 
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!masakazu matsubara
 
サーバサイド Kotlin
サーバサイド Kotlinサーバサイド Kotlin
サーバサイド KotlinHiroki Ohtani
 
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017Kohei Saito
 
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_cccJEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_cccYujiSoftware
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyTakakiyo Tanaka
 
マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方CData Software Japan
 
Javaアプリケーションの モダナイゼーションアプローチ
Javaアプリケーションの モダナイゼーションアプローチJavaアプリケーションの モダナイゼーションアプローチ
Javaアプリケーションの モダナイゼーションアプローチCData Software Japan
 
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜aha_oretama
 
ユニットテストのアサーション 流れるようなインターフェースのAssertJを添えて 入門者仕立て
ユニットテストのアサーション 流れるようなインターフェースのAssertJを添えて 入門者仕立てユニットテストのアサーション 流れるようなインターフェースのAssertJを添えて 入門者仕立て
ユニットテストのアサーション 流れるようなインターフェースのAssertJを添えて 入門者仕立てRyosuke Uchitate
 
将来 自分で サービスを持ちたいエンジニアの葛藤
将来 自分で サービスを持ちたいエンジニアの葛藤 将来 自分で サービスを持ちたいエンジニアの葛藤
将来 自分で サービスを持ちたいエンジニアの葛藤 Yoshio Kajikuri
 
サンプルで学ぶCassandraアプリケーションの作り方
サンプルで学ぶCassandraアプリケーションの作り方サンプルで学ぶCassandraアプリケーションの作り方
サンプルで学ぶCassandraアプリケーションの作り方Yuki Morishita
 

Viewers also liked (20)

Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugSpring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
 
JVM上で動くPython処理系実装のススメ
JVM上で動くPython処理系実装のススメJVM上で動くPython処理系実装のススメ
JVM上で動くPython処理系実装のススメ
 
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門
 
JJUG初心者のためのJava/JJUG講座
JJUG初心者のためのJava/JJUG講座JJUG初心者のためのJava/JJUG講座
JJUG初心者のためのJava/JJUG講座
 
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にJava SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
 
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilationAnother 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 〜あなたはその時どちらを使う〜Selenide or Geb 〜あなたはその時どちらを使う〜
Selenide or Geb 〜あなたはその時どちらを使う〜
 
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
 
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
 
サーバサイド Kotlin
サーバサイド Kotlinサーバサイド Kotlin
サーバサイド Kotlin
 
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
 
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_cccJEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
 
マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方
 
Javaアプリケーションの モダナイゼーションアプローチ
Javaアプリケーションの モダナイゼーションアプローチJavaアプリケーションの モダナイゼーションアプローチ
Javaアプリケーションの モダナイゼーションアプローチ
 
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
 
ユニットテストのアサーション 流れるようなインターフェースのAssertJを添えて 入門者仕立て
ユニットテストのアサーション 流れるようなインターフェースのAssertJを添えて 入門者仕立てユニットテストのアサーション 流れるようなインターフェースのAssertJを添えて 入門者仕立て
ユニットテストのアサーション 流れるようなインターフェースのAssertJを添えて 入門者仕立て
 
将来 自分で サービスを持ちたいエンジニアの葛藤
将来 自分で サービスを持ちたいエンジニアの葛藤 将来 自分で サービスを持ちたいエンジニアの葛藤
将来 自分で サービスを持ちたいエンジニアの葛藤
 
サンプルで学ぶCassandraアプリケーションの作り方
サンプルで学ぶCassandraアプリケーションの作り方サンプルで学ぶCassandraアプリケーションの作り方
サンプルで学ぶCassandraアプリケーションの作り方
 
日本Javaグループ2017年定期総会 #jjug
日本Javaグループ2017年定期総会 #jjug 日本Javaグループ2017年定期総会 #jjug
日本Javaグループ2017年定期総会 #jjug
 

Similar to サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方

Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.jsTanUkkii
 
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Shotaro Suzuki
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 日本マイクロソフト株式会社
 
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Yoichi Kawasaki
 
One ASP.NET の今とこれから
One ASP.NET の今とこれからOne ASP.NET の今とこれから
One ASP.NET の今とこれからAkira Inoue
 
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスドMicrosoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスドKazumi Hirose
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門miso- soup3
 
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた日本マイクロソフト株式会社
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発Akira Inoue
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
 
Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要Miho Yamamoto
 
DBFlute Mavenプラグインを用いてCRUD作成
DBFlute Mavenプラグインを用いてCRUD作成DBFlute Mavenプラグインを用いてCRUD作成
DBFlute Mavenプラグインを用いてCRUD作成Shinsuke Sugaya
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Daisuke Hiraoka
 
New Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASMNew Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASMShotaro Suzuki
 
機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編Daiyu Hatakeyama
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireAkio Katayama
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッションYuichi Hasegawa
 
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例Shigeru UCHIYAMA
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるdavid9142
 

Similar to サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方 (20)

Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
 
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
 
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
 
One ASP.NET の今とこれから
One ASP.NET の今とこれからOne ASP.NET の今とこれから
One ASP.NET の今とこれから
 
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスドMicrosoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
 
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要
 
DBFlute Mavenプラグインを用いてCRUD作成
DBFlute Mavenプラグインを用いてCRUD作成DBFlute Mavenプラグインを用いてCRUD作成
DBFlute Mavenプラグインを用いてCRUD作成
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
New Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASMNew Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASM
 
機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッション
 
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
 

More from Yuki Morishita

DataStax EnterpriseでApache Tinkerpop入門
DataStax EnterpriseでApache Tinkerpop入門DataStax EnterpriseでApache Tinkerpop入門
DataStax EnterpriseでApache Tinkerpop入門Yuki Morishita
 
Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界Yuki Morishita
 
DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析Yuki Morishita
 
分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise Graph分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise GraphYuki Morishita
 
Apache Cassandra最新情報まとめ
Apache Cassandra最新情報まとめApache Cassandra最新情報まとめ
Apache Cassandra最新情報まとめYuki Morishita
 
How you can contribute to Apache Cassandra
How you can contribute to Apache CassandraHow you can contribute to Apache Cassandra
How you can contribute to Apache CassandraYuki Morishita
 

More from Yuki Morishita (8)

Apache cassandra v4.0
Apache cassandra v4.0Apache cassandra v4.0
Apache cassandra v4.0
 
DataStax EnterpriseでApache Tinkerpop入門
DataStax EnterpriseでApache Tinkerpop入門DataStax EnterpriseでApache Tinkerpop入門
DataStax EnterpriseでApache Tinkerpop入門
 
Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界
 
DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析
 
分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise Graph分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise Graph
 
Apache Cassandra最新情報まとめ
Apache Cassandra最新情報まとめApache Cassandra最新情報まとめ
Apache Cassandra最新情報まとめ
 
How you can contribute to Apache Cassandra
How you can contribute to Apache CassandraHow you can contribute to Apache Cassandra
How you can contribute to Apache Cassandra
 
CQL3 in depth
CQL3 in depthCQL3 in depth
CQL3 in depth
 

Recently uploaded

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 

Recently uploaded (12)

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方

Editor's Notes

  1. 2009年よりApache Software Foundationにおいて開発されている分散データベース 現時点での最新バージョンはv3.11.1
  2. KillrVideoの説明 DSEをデータベースとして使っているが、Apache Cassandraがコア
  3. デモ
  4. コメント機能デモ