SlideShare a Scribd company logo
Licensed under a Creative Commons Attribution-NonCommercial 3.0 New Zealand License
SEATTLE CASSANDRA USERS JUNE 2015
INTRODUCTION TO DATA
MODELLING
Licensed under a Creative Commons Attribution-NonCommercial 3.0 New Zealand License
Aaron Morton
@aaronmorton
Co-Founder &Team Member
Example 1
Example 2
The other stuff.
“It’s a like SQL, you just need
to think about things more.
But it stores massive amounts
of data.Which is nice.”
Example 1
Stock Market Data
exchangeTable
CREATE TABLE exchange (
exchange_id text,
name text,
city text,
PRIMARY KEY (exchange_id)
);
Tables.
Primary Key
Strong Typing
Pre defined Column names
All non Primary Key Columns optional
Tables, But.
Sparse Layout
No Foreign Keys
No Joins
No Constraints
No ALTERTABLE locks
No Type Casting on ALTERTABLE
exchange
CREATE TABLE exchange (
exchange_id text,
name text,
city text,
PRIMARY KEY (exchange_id)
);
DataTypes
ascii, text, varchar
int, bigint, varint
blob
boolean
counter
decimal, double, float
inet
list, map, set
timestamp
timeuuid, uuid
tuple
exchangeTable
CREATE TABLE exchange (
exchange_id text,
name text,
city text,
PRIMARY KEY (exchange_id)
);
Primary Key
…
PRIMARY KEY (PARTITION_KEY,
CLUSTERING_KEY, CLUSTERING_KEY,…)
…
Partition
A Partition is a storage engine row.
Rows with the same Partition Key
are in the same Partition.
cqlsh
$ bin/cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.2 | CQL spec 3.2.0 |
Native protocol v3]
Use HELP for help.
cqlsh>
exchangeTable In Action
INSERT INTO
exchange
(exchange_id, name, city)
VALUES
('nyse', 'New York Stock Exchange', 'New York');
exchangeTable In Action
SELECT
*
FROM
exchange
WHERE
exchange_id = ‘nyse';
exchange_id | city | name
-------------+----------+-------------------------
nyse | New York | New York Stock Exchange
exchangeTable In Action
DELETE FROM
exchange
WHERE
exchange_id = 'nyse';
Table Scan Anti Pattern
SELECT
*
FROM
exchange;
exchange_id | city | name
-------------+----------+-------------------------
nyse | New York | New York Stock Exchange
stockTable
CREATE TABLE stock (
exchange_id text
ticker text,
name text,
sector text,
PRIMARY KEY ( (exchange_id, ticker) )
);
Compound Partition Key
stockTable In Action
INSERT INTO
stock
(exchange_id, ticker, name, sector)
VALUES
('nyse', 'tlp', 'The Last Pickle', 'awesomeness');
stockTable In Action
SELECT
*
FROM
stock
WHERE
exchange_id = ‘nyse’ AND ticker = 'tlp';
exchange_id | ticker | name | sector
-------------+--------+-----------------+-------------
nyse | tlp | The Last Pickle | awesomeness
Primary Key Restrictions
SELECT
*
FROM
stock
WHERE
exchange_id = 'nyse';
code=2200 [Invalid query] message="Partition key part
ticker must be restricted since preceding part is"
stock_tickerTable
CREATE TABLE stock_ticker (
exchange_id text,
ticker text,
date int, // YYYYMMDD
eod_price int,
PRIMARY KEY ( (exchange_id, ticker), date)
);
Clustering Key
Standard comments
Multiple Rows Per Partition.
Rows with the same Partition Key
are in the same Partition.
Multiple Rows Per Partition.
Rows in the same Partition are
identified by their Clustering Key(s).
Multiple Rows Per Partition.
Together the Partition Key and
Clustering Key(s) form the Primary
Key that identifies a Row.
Primary Key
PRIMARY KEY ((exchange_id, ticker), date)
Clustering Key
Partition Key
stock_tickerTable In Action
INSERT INTO
stock_ticker
(exchange_id, ticker, date, eod_price)
VALUES
('nyse', 'tlp', 20150110, 100);
INSERT INTO
stock_ticker
(exchange_id, ticker, date, eod_price)
VALUES
('nyse', 'tlp', 20150111, 110);
INSERT INTO
stock_ticker
(exchange_id, ticker, date, eod_price)
VALUES
('nyse', 'tlp', 20150112, 80);
stock_tickerTable In Action
SELECT
*
FROM
stock_ticker
WHERE
exchange_id = 'nyse' AND ticker = 'tlp' and date =
20150110;
exchange_id | ticker | date | eod_price
-------------+--------+----------+-----------
nyse | tlp | 20150110 | 100
stock_tickerTable In Action
SELECT
*
FROM
stock_ticker
WHERE
exchange_id = 'nyse' AND ticker = ‘tlp';
exchange_id | ticker | date | eod_price
-------------+--------+----------+-----------
nyse | tlp | 20150110 | 100
nyse | tlp | 20150111 | 110
nyse | tlp | 20150112 | 80
stock_tickerTable In Action
SELECT
*
FROM
stock_ticker
WHERE
exchange_id = 'nyse' AND ticker = 'tlp'
ORDER BY
date desc;
exchange_id | ticker | date | eod_price
-------------+--------+----------+-----------
nyse | tlp | 20150112 | 80
nyse | tlp | 20150111 | 110
nyse | tlp | 20150110 | 100
ReversingThe Stock TickerTable
CREATE TABLE stock_ticker (
exchange_id text,
ticker text,
date int, // YYYYMMDD
number_traded int,
PRIMARY KEY ( (exchange_id, ticker), date)
)
WITH CLUSTERING ORDER BY (date DESC);
stock_tickerTable In Action
SELECT
*
FROM
stock_ticker
WHERE
exchange_id = 'nyse' AND ticker = ‘tlp' AND date > 20150110;
exchange_id | ticker | date | eod_price
-------------+--------+----------+-----------
nyse | tlp | 20150112 | 80
nyse | tlp | 20150111 | 110
So Far.
Tables with Columns
Data Types
Partitions and Clustering
Clustering Order
Table Properties
Example 1
Example 2
The other stuff.
Data Modelling Guidelines.
Denormalise by creating
materialised views that support
the read paths of the
application.
Data Modelling Guidelines.
Constrain the Partition Size by
time or space.
Data Modelling Guidelines.
Solve problems with the read
path of your application in the
write path.
Example 2
Vehicle Tracking
A “Black Box” onVehicles sends position,
speed, etc every 30 seconds via mobile
networks.
Requirements
1. Lookup vehicle details by vehicle_id.
2. Get data points for a time slice by
vehicle_id.
3. Get distinct days a vehicle has been
active by vehicle_id.
Data Model Planning - Requirement 1
Vehicle sounds like a simple
entity identified by
vehicle_id.
Data Model Planning - Requirement 2
Sounds like a (potentially
infinite) Time Series of data per
vehicle_id.
Data Model Planning - Requirement 3
Is a summary of Time Series
data per vehicle_id.
Keyspace == Database
create keyspace
trak_u_like
WITH REPLICATION =
{
'class':'NetworkTopologyStrategy',
'datacenter1' : 3
};
use trak_u_like;
vehicleTable
CREATE TABLE vehicle (
vehicle_id text,
make text,
model text,
accidents list<text>,
drivers set<text>,
modifications map<text, text>,
PRIMARY KEY (vehicle_id)
);
CollectionTypes
CQL 3 Spec…
“Collections are meant for storing/
denormalizing relatively small amount
of data.”
vehicleTable In Action
INSERT INTO
vehicle
(vehicle_id, make, model, drivers, modifications)
VALUES
('wig123', 'Big Red', 'Car',
{'jeff', 'anthony'},
{'wheels' : 'mag wheels'});
vehicleTable In Action
SELECT
*
FROM
vehicle
WHERE
vehicle_id = ‘wig123';
vehicle_id | accidents | drivers | make | model | modifications
------------+-----------+---------------------+---------+-------+--------------------------
wig123 | null | {'anthony', 'jeff'} | Big Red | Car | {'wheels': 'mag wheels'}
vehicleTable In Action
UPDATE
vehicle
SET
accidents = accidents + ['jeff crashed into dorothy 2015/01/21']
where
vehicle_id = 'wig123';
vehicleTable In Action
SELECT
vehicle_id, accidents, drivers
FROM
vehicle
WHERE
vehicle_id = ‘wig123';
vehicle_id | accidents | drivers
------------+------------------------------------------+---------------------
wig123 | ['jeff crashed into dorothy 2015/01/21'] | {'anthony', 'jeff'}
vehicleTable In Action
UPDATE
vehicle
SET
drivers = drivers - {'jeff'}
where
vehicle_id = 'wig123';
vehicleTable In Action
SELECT
vehicle_id, accidents, drivers
FROM
vehicle
WHERE
vehicle_id = 'wig123';
vehicle_id | accidents | drivers
------------+------------------------------------------+-------------
wig123 | ['jeff crashed into dorothy 2015/01/21'] | {'anthony'}
data_pointTable
CREATE TABLE data_point (
vehicle_id text,
day int,
sequence timestamp,
latitude double,
longitude double,
heading double,
speed double,
distance double,
PRIMARY KEY ( (vehicle_id, day), sequence)
)
WITH CLUSTERING ORDER BY (sequence DESC);
Bucketing the data_pointTable
PRIMARY KEY ( (vehicle_id, day), sequence)
WITH CLUSTERING ORDER BY (sequence DESC);
All data points for one day are stored in the
same partition.
Each Partition will have up to 2,880 rows.
data_pointTable In Action
INSERT INTO
data_point
(vehicle_id, day, sequence, latitude, longitude, heading, speed, distance)
VALUES
('wig123', 20150120, '2015-01-20 09:01:00', -41, 174, 270, 10, 500);
INSERT INTO
data_point
(vehicle_id, day, sequence, latitude, longitude, heading, speed, distance)
VALUES
('wig123', 20150120, '2015-01-20 09:01:30', -42, 174, 270, 10, 500);
…
data_pointTable In Action
SELECT
vehicle_id, day, sequence, latitude, longitude
FROM
data_point
WHERE
vehicle_id = 'wig123' AND day = 20150120;
vehicle_id | day | sequence | latitude | longitude
------------+----------+--------------------------+----------+-----------
wig123 | 20150120 | 2015-01-20 09:02:30+1300 | -44 | 174
wig123 | 20150120 | 2015-01-20 09:02:00+1300 | -43 | 174
wig123 | 20150120 | 2015-01-20 09:01:30+1300 | -42 | 174
wig123 | 20150120 | 2015-01-20 09:01:00+1300 | -41 | 174
data_pointTable In Action
SELECT
vehicle_id, day, sequence, latitude, longitude
FROM
data_point
WHERE
vehicle_id = 'wig123' AND day in (20150120, 20150121);
vehicle_id | day | sequence | latitude | longitude
------------+----------+--------------------------+----------+-----------
wig123 | 20150120 | 2015-01-20 09:02:30+1300 | -44 | 174
wig123 | 20150120 | 2015-01-20 09:02:00+1300 | -43 | 174
wig123 | 20150120 | 2015-01-20 09:01:30+1300 | -42 | 174
wig123 | 20150120 | 2015-01-20 09:01:00+1300 | -41 | 174
wig123 | 20150121 | 2015-01-21 08:02:30+1300 | -44 | 176
wig123 | 20150121 | 2015-01-21 08:02:00+1300 | -44 | 175
active_dayTable
CREATE TABLE active_day (
vehicle_id text,
day int,
distance counter,
PRIMARY KEY (vehicle_id, day)
)
WITH
CLUSTERING ORDER BY (day DESC)
AND
COMPACTION =
{
'class' : 'LeveledCompactionStrategy'
};
active_dayTable In Action
UPDATE
active_day
SET
distance = distance + 500
WHERE
vehicle_id = 'wig123' and day = 20150120;
UPDATE
active_day
SET
distance = distance + 500
WHERE
vehicle_id = 'wig123' and day = 20150120;
active_dayTable In Action
SELECT
*
FROM
active_day
WHERE
vehicle_id = 'wig123';
vehicle_id | day | distance
------------+----------+----------
wig123 | 20150121 | 1000
wig123 | 20150120 | 2000
active_dayTable In Action
SELECT
*
FROM
active_day
WHERE
vehicle_id = 'wig123'
LIMIT 1;
vehicle_id | day | distance
------------+----------+----------
wig123 | 20150121 | 1000
“It’s a like SQL, you just need
to think about things more.
But it stores massive amounts
of data.Which is nice.”
Example 1
Example 2
And now the other stuff.
Light Weight Transactions
Static Columns
Indexes
Uses Paxos
Added in 2.0.
Light WeightTransactions
Provide linearizable
consistency, similar to SERIAL
Transaction Isolation.
Light WeightTransactions
Use Sparingly.
Impacts Performance and
Availability.
Light WeightTransactions
Light WeightTransactions
CREATE TABLE user (
user_name text,
password text,
PRIMARY KEY (user_name)
);
Insert If Not Exists
INSERT INTO
user
(user_name, password)
VALUES
('aaron', 'pwd')
IF
NOT EXISTS;
Failing Insert
INSERT INTO
user
(user_name, password)
VALUES
('aaron', 'pwd')
IF
NOT EXISTS;
[applied] | user_name | password
-----------+-----------+----------
False | aaron | newpwd
Update If No Change
UPDATE
user
SET
password = 'newpwd'
WHERE
user_name = 'aaron'
IF
password = 'pwd';
Failing Update
UPDATE
user
SET
password = 'newpwd'
WHERE
user_name = 'aaron'
IF
password = ‘pwd’;
[applied] | password
-----------+----------
False | newpwd
Light WeightTransactions
Static Columns
Indexes
Static Columns
Column value stored at the
partition level.
All rows in the partition have
the same value.
Static Columns
CREATE TABLE web_order (
order_id text,
order_total int static,
order_item text,
item_cost int,
PRIMARY KEY (order_id, order_item)
);
Static Columns - Simple Example
INSERT INTO
web_order
(order_id, order_total, order_item, item_cost)
VALUES
('ord1', 5, 'foo', 5);
INSERT INTO
web_order
(order_id, order_total, order_item, item_cost)
VALUES
('ord1', 10, 'bar', 5);
INSERT INTO
web_order
(order_id, order_total, order_item, item_cost)
VALUES
('ord1', 20, 'baz', 10);
Static Columns - Simple Example
select * from web_order;
order_id | order_item | order_total | item_cost
----------+------------+-------------+-----------
ord1 | bar | 20 | 5
ord1 | baz | 20 | 10
ord1 | foo | 20 | 5
Static Columns With LWT
Static Columns may be used in
a conditional UPDATE.
All updates to the Partition in
the BATCH will be included.
Static Columns With LWT
BEGIN BATCH
UPDATE web_order
SET order_total = 50
WHERE order_id='ord1'
IF order_total = 20;
INSERT INTO web_order
(order_id, order_item, item_cost)
VALUES
('ord1', 'monkey', 30);
APPLY BATCH;
Light WeightTransactions
Static Columns
Indexes
Secondary Indexes
Use non Primary Key fields in
the WHERE clause.
Secondary Indexes
Use Sparingly.
Impacts Performance and
Availability.
Secondary Indexes
CREATE TABLE user (
user_name text,
state text,
password text,
PRIMARY KEY (user_name)
);
CREATE INDEX on user(state);
Secondary Indexes
INSERT INTO user
(user_name, state, password)
VALUES
('aaron', 'ca', ‘pwd');
INSERT INTO user
(user_name, state, password)
VALUES
('nate', 'tx', ‘pwd');
INSERT INTO user
(user_name, state, password)
VALUES
('kareem', 'wa', 'pwd');
Secondary Indexes
SELECT * FROM user WHERE state = ‘ca';
user_name | password | state
-----------+----------+-------
aaron | pwd | ca
Thanks.
Licensed under a Creative Commons Attribution-NonCommercial 3.0 New Zealand License
Aaron Morton
@aaronmorton
Co-Founder &Team Member
www.thelastpickle.com
Licensed under a Creative Commons Attribution-NonCommercial 3.0 New Zealand License

More Related Content

PDF
Customer Clustering for Retailer Marketing
PPTX
Reducing Development Time with MongoDB vs. SQL
PDF
DN 2017 | Multi-Paradigm Data Science - On the many dimensions of Knowledge D...
PPT
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
PDF
DN 2017 | Reducing pain in data engineering | Martin Loetzsch | Project A
PPTX
Introducing N1QL: New SQL Based Query Language for JSON
PDF
Apache Cassandra & Data Modeling
DOCX
Indexes in ms sql server
Customer Clustering for Retailer Marketing
Reducing Development Time with MongoDB vs. SQL
DN 2017 | Multi-Paradigm Data Science - On the many dimensions of Knowledge D...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
DN 2017 | Reducing pain in data engineering | Martin Loetzsch | Project A
Introducing N1QL: New SQL Based Query Language for JSON
Apache Cassandra & Data Modeling
Indexes in ms sql server

What's hot (6)

PDF
Lecture05sql 110406195130-phpapp02
PDF
Hack reduce mr-intro
KEY
Introduction to Restkit
PDF
Storing tree structures with MongoDB
PPT
Spring data
PPTX
Indexing and Query Optimizer (Aaron Staple)
Lecture05sql 110406195130-phpapp02
Hack reduce mr-intro
Introduction to Restkit
Storing tree structures with MongoDB
Spring data
Indexing and Query Optimizer (Aaron Staple)
Ad

Viewers also liked (20)

PDF
Advanced Data Modeling with Apache Cassandra
PDF
Virtual Beamer - Jini-Based Academic Project
PDF
Cassandra Summit 2014: META — An Efficient Distributed Data Hub with Batch an...
PDF
Cassandra Summit 2014: Social Media Security Company Nexgate Relies on Cassan...
PDF
Cassandra Summit 2014: A Train of Thoughts About Growing and Scalability — Bu...
PDF
Cassandra Summit 2014: Cassandra in Large Scale Enterprise Grade xPatterns De...
PDF
Apache Cassandra at Narmal 2014
PPTX
Cassandra Summit 2014: Apache Cassandra at Telefonica CBS
PDF
Coursera's Adoption of Cassandra
PDF
Cassandra Summit 2014: Monitor Everything!
PDF
Production Ready Cassandra (Beginner)
PDF
Cassandra Summit 2014: The Cassandra Experience at Orange — Season 2
PDF
New features in 3.0
PDF
The Last Pickle: Distributed Tracing from Application to Database
PDF
Introduction to .Net Driver
PPTX
Spark Cassandra Connector: Past, Present and Furure
PDF
Playlists at Spotify
PPTX
Lessons Learned with Cassandra and Spark at the US Patent and Trademark Office
PDF
Oracle to Cassandra Core Concepts Guide Pt. 2
PPTX
Using Event-Driven Architectures with Cassandra
Advanced Data Modeling with Apache Cassandra
Virtual Beamer - Jini-Based Academic Project
Cassandra Summit 2014: META — An Efficient Distributed Data Hub with Batch an...
Cassandra Summit 2014: Social Media Security Company Nexgate Relies on Cassan...
Cassandra Summit 2014: A Train of Thoughts About Growing and Scalability — Bu...
Cassandra Summit 2014: Cassandra in Large Scale Enterprise Grade xPatterns De...
Apache Cassandra at Narmal 2014
Cassandra Summit 2014: Apache Cassandra at Telefonica CBS
Coursera's Adoption of Cassandra
Cassandra Summit 2014: Monitor Everything!
Production Ready Cassandra (Beginner)
Cassandra Summit 2014: The Cassandra Experience at Orange — Season 2
New features in 3.0
The Last Pickle: Distributed Tracing from Application to Database
Introduction to .Net Driver
Spark Cassandra Connector: Past, Present and Furure
Playlists at Spotify
Lessons Learned with Cassandra and Spark at the US Patent and Trademark Office
Oracle to Cassandra Core Concepts Guide Pt. 2
Using Event-Driven Architectures with Cassandra
Ad

Similar to Introduction to Dating Modeling for Cassandra (20)

PPT
What's New for Developers in SQL Server 2008?
PPT
SQL Server 2008 Overview
PDF
A Divine Data Comedy
PDF
Database Design Project-Oracle 11g
PPTX
NoSQL Endgame - Java2Days 2020 Virtual
PDF
DP080_Lecture_2 SQL related document.pdf
PDF
Cassandra v3.0 at Rakuten meet-up on 12/2/2015
PPTX
At the core you will have KUSTO
PPTX
Training on Microsoft SQL Server(older version).pptx
PDF
All About JSON and ClickHouse - Tips, Tricks and New Features-2022-07-26-FINA...
PPTX
U-SQL Partitioned Data and Tables (SQLBits 2016)
PPTX
SQL Windowing
PDF
Why is Azure Data Explorer fast in petabyte-scale analytics?
PDF
Better than you think: Handling JSON data in ClickHouse
PPTX
Maryna Popova "Deep dive AWS Redshift"
PDF
A Rusty introduction to Apache Arrow and how it applies to a time series dat...
PPTX
Sql Basics And Advanced
PDF
Sql tutorial
PDF
Sql tutorial
PPTX
Андрей Козлов (Altoros): Оптимизация производительности Cassandra
What's New for Developers in SQL Server 2008?
SQL Server 2008 Overview
A Divine Data Comedy
Database Design Project-Oracle 11g
NoSQL Endgame - Java2Days 2020 Virtual
DP080_Lecture_2 SQL related document.pdf
Cassandra v3.0 at Rakuten meet-up on 12/2/2015
At the core you will have KUSTO
Training on Microsoft SQL Server(older version).pptx
All About JSON and ClickHouse - Tips, Tricks and New Features-2022-07-26-FINA...
U-SQL Partitioned Data and Tables (SQLBits 2016)
SQL Windowing
Why is Azure Data Explorer fast in petabyte-scale analytics?
Better than you think: Handling JSON data in ClickHouse
Maryna Popova "Deep dive AWS Redshift"
A Rusty introduction to Apache Arrow and how it applies to a time series dat...
Sql Basics And Advanced
Sql tutorial
Sql tutorial
Андрей Козлов (Altoros): Оптимизация производительности Cassandra

More from DataStax Academy (20)

PDF
Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
PPTX
Introduction to DataStax Enterprise Graph Database
PPTX
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
PPTX
Cassandra on Docker @ Walmart Labs
PDF
Cassandra 3.0 Data Modeling
PPTX
Cassandra Adoption on Cisco UCS & Open stack
PDF
Data Modeling for Apache Cassandra
PDF
Coursera Cassandra Driver
PDF
Production Ready Cassandra
PDF
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
PPTX
Cassandra @ Sony: The good, the bad, and the ugly part 1
PPTX
Cassandra @ Sony: The good, the bad, and the ugly part 2
PDF
Standing Up Your First Cluster
PDF
Real Time Analytics with Dse
PDF
Introduction to Data Modeling with Apache Cassandra
PDF
Cassandra Core Concepts
PPTX
Enabling Search in your Cassandra Application with DataStax Enterprise
PPTX
Bad Habits Die Hard
PDF
Advanced Cassandra
PDF
Apache Cassandra and Drivers
Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
Introduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Cassandra on Docker @ Walmart Labs
Cassandra 3.0 Data Modeling
Cassandra Adoption on Cisco UCS & Open stack
Data Modeling for Apache Cassandra
Coursera Cassandra Driver
Production Ready Cassandra
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 2
Standing Up Your First Cluster
Real Time Analytics with Dse
Introduction to Data Modeling with Apache Cassandra
Cassandra Core Concepts
Enabling Search in your Cassandra Application with DataStax Enterprise
Bad Habits Die Hard
Advanced Cassandra
Apache Cassandra and Drivers

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
cuic standard and advanced reporting.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPT
Teaching material agriculture food technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Encapsulation theory and applications.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Cloud computing and distributed systems.
MYSQL Presentation for SQL database connectivity
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Dropbox Q2 2025 Financial Results & Investor Presentation
Agricultural_Statistics_at_a_Glance_2022_0.pdf
cuic standard and advanced reporting.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
A comparative analysis of optical character recognition models for extracting...
Building Integrated photovoltaic BIPV_UPV.pdf
Teaching material agriculture food technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Machine learning based COVID-19 study performance prediction
Encapsulation theory and applications.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
NewMind AI Weekly Chronicles - August'25-Week II
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11

Introduction to Dating Modeling for Cassandra