Session Object

The DataStax drivers use session object(s) to perform operations against a Cassandra cluster

Background

Given
a running Cassandra cluster

Sessions can also operate on different keyspaces

Given
the following schema:
CREATE KEYSPACE french WITH replication = {
  'class': 'SimpleStrategy',
  'replication_factor': 1
};
CREATE KEYSPACE german WITH replication = {
  'class': 'SimpleStrategy',
  'replication_factor': 1
};
CREATE KEYSPACE uk WITH replication = {
  'class': 'SimpleStrategy',
  'replication_factor': 1
};
CREATE TABLE french.playlists (
  id uuid,
  title text,
  album text,
  artist text,
  song_id uuid,
  PRIMARY KEY (id, title, album, artist)
);
CREATE TABLE german.playlists (
  id uuid,
  title text,
  album text,
  artist text,
  song_id uuid,
  PRIMARY KEY (id, title, album, artist)
);
CREATE TABLE uk.playlists (
  id uuid,
  title text,
  album text,
  artist text,
  song_id uuid,
  PRIMARY KEY (id, title, album, artist)
);
INSERT INTO french.playlists (id, song_id, artist, title, album)
VALUES (
  62c36092-82a1-3a00-93d1-46196ee77204,
  756716f7-2e54-4715-9f00-91dcbea6cf50,
  'Joséphine Baker',
  'La Petite Tonkinoise',
  'Bye Bye Blackbird'
);
INSERT INTO german.playlists (id, song_id, artist, title, album)
VALUES (
  62c36092-82a1-3a00-93d1-46196ee77204,
  f6071e72-48ec-4fcb-bf3e-379c8a696488,
  'Willi Ostermann',
  'Die Mösch',
  'In Gold'
);
INSERT INTO uk.playlists (id, song_id, artist, title, album)
VALUES (
  62c36092-82a1-3a00-93d1-46196ee77204,
  fbdf82ed-0063-4796-9c7c-a3d4f47b4b25,
  'Mick Jager',
  'Memo From Turner',
  'Performance'
);
And
the following example:
<?php
$cluster          = Cassandra::cluster()
                      ->withContactPoints('127.0.0.1')
                      ->build();
$french_session   = $cluster->connect("french");
$german_session   = $cluster->connect("german");
$uk_session       = $cluster->connect("uk");
$statement = new Cassandra\SimpleStatement("SELECT * FROM playlists");

$row = $french_session->execute($statement);
echo "French session contains " . $row->count() . " rows\n";
$row = $german_session->execute($statement);
echo "German session contains " . $row->count() . " rows\n";
$row = $uk_session->execute($statement);
echo "UK session contains " . $row->count() . " rows";
When
it is executed
Then
its output should contain:
French session contains 1 rows
German session contains 1 rows
UK session contains 1 rows