SlideShare a Scribd company logo
1
Building a nosql from scratch
Let them know what they are missing!
#ddtx16
@edwardcapriolo
@HuffPostCode
2
If you are looking for

A battle tested NoSQL data store

That scales up to 1 million transactions a second

Allows you to query data from your IoT sensors in real time

You are at the wrong talk!

This is a presentation about Nibiru

An open source database I work on in my spare time

But you should stay anyway...
3
Motivations

Why do that?

How this got started?

What did it morph into?

Many NoSQL databases came out of an industry specific use
case and as a result they had baked in assumptions. If we
have clean interfaces and good abstractions we can make a
better general tool with lessed forced choices.

Pottentially support a majority of the use cases in one
tool.
4
A friend asked

Won't this make Nibiru have all the bugs of all the systems?
5
My response

Jerk!
6
You might want to follow along with local copy

There are a lot of slides that have a fair amount of code

https://github.com/edwardcapriolo/nibiru/blob/master/hexagons.ppt

http://bit.ly/1NcAoEO
7
Basics
8
Terminology

Keyspace: A logical grouping of store(s)

Store: A structure that holds data
− Avoided: Column Family, Table, Collection, etc

Node: a system

Cluster: a group of nodes
9
Assumptions & Design notes

A store is of a specific type Key Value, Column Family, etc

The API of the store is dictated by the type

Ample gotchas from one man, after work, project

Wire components together, not into a large context

Using string (for now) instead of byte[] for debug
10
Server ID

We need to uniquely identify each node

Hostname/ip is not good solution
− Systems have multiple
− Can change

Should be able to run N copies on single node
11
Implementation

On first init() create guid and persist
12
Cluster Membership
13
Cluster Membership

What is a list of nodes in the cluster?

What is the up/down state of each node?
14
Static Membership
15
Different cluster membership models

Consensus/Gossip
− Cassandra
− Elastic Search

Master Node/Someone
elses problem
− HBase (zookeeper)
16
Gossip
http://www.joshclemm.com/projects/
17
Teknek Gossip

Licenced Apache V2

Forked from google code project

Available from maven g: io.teknek a: gossip

Great tool for building a peer-to-peer service
18
Cluster Membership using Gossip
19
Get Live Members
20
Gutcheck

Did clean abstractions hurt the design here?

Does it seem possible we could add zookeeper/etcd as a
backend implemention?

Any takers? :)
21
Request Routing
22
Some options

So you have a bunch of nodes in a cluster,
but where the heck does the data go?

Client dictated - like a sharded memcache|mysql|whatever

HBase - Sharding with a leader election

Dynamo Style - ring topology token ownership
23
Router & Partitioners
24
Pick your poison: no hot spots or key locality :)
25
Quick example LocalPartitioner
26
Scenario: using a Dynamo-ish router

Construct a three node topology

Give each an id

Give them each a token

Test that requests route properly
27
Cluster and Token information
28
Unit Test
29
Token Router
30
Do the Damn Thing!
31
Do the Damn Thing! With Replication
32
Storage Layer
33
Basic Data Storage SSTables

SS = Sorted String { 'a', $PAYLOAD$ },
{ 'b', $PAYLOAD$ }
34
LevelDB SSTable payload

Key Value implementation

SortedMap<byte, byte>
{ 'a', '1' },
{ 'b', '2' }
35
Cassandra SSTable Implementation

Key Value in which value is a
map with last-update-wins
versioning

SortedMap<byte, SortedMap
<byte, Val<byte,long>>
{ 'a', { 'col':{ 'val', 1 } } },
{ 'b', {
'col1':{ 'val', 1 },
'col2':{ 'val2', 2 }
}
}
36
HBase SSTable Implementation

Key-Value in which value is a
map with multi-versioning

SortedMap<byte, SortedMap
<byte, Val<byte,long>>
{
{ 'a', { 'col':{ 'val', 1 } } },
{ 'b', {
'col1':{ 'val', 1 },
'col1':{ 'valb', 2 },
'col2':{ 'val2', 2 }
}
}
}
37
Column Family Store high level
38
Operations to support
39
One possible memtable implementation
 Holy Generics batman!
 Isn't it just a map of map?
40
Unforunately no!

Imagine two requests arrive in this order:
− set people [edward] [age]='34' (Time 2)
− set people [edward] [age]='35' (Time 1)

What should be the final value?

We need to deal with events landing out of order

Also exists delete write known as Tombstone
41
And then, there is concurrency

Multiple threads manipulating at same time

Proposed solution: (Which I think is correct)
− Do not compare and swap value, instead append to queue and take
a second pass to optimize
42
43
Optimization 1: BloomFilters

Use guava. Smart!

Audiance: make disapointed aww sound because Ed did not
write it himself
44
Optimization 2: IndexWriter

Not ideal to seek a disk like you would seek memory
45
Consistency
46
Multinode Consistency

Replication: Number of places data lives

Active/Active Master/Slave (with takover)

Resolving conflicted data
47
Quorum Consistency
Active/Active Implemantation
48
Message dispatched
49
Asyncronos Responses T1
50
Asyncronos Responses T2
51
Logic to merge results
52
Breakdown of components

Start & dedline : Max time to wait for requests

Message : The read/write request sent to each destination

Merger : Turn multiple responses into single result
53
54
Testing
55
Challenges of timing in testing

Target goal is ~ 80% unit 20% integetration (e2e) testing

Performance varies in local vs travis-ci

Hard to test something that typically happens in milliseconds
but at worst case can take seconds

Lazy half solution: Thread.sleep() statements for worst case
− Definately a slippery slope
56
Introducing TUnit

https://github.com/edwardcapriolo/tunit
57
The End

More Related Content

What's hot

Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
DataStax
 

What's hot (20)

ScyllaDB: NoSQL at Ludicrous Speed
ScyllaDB: NoSQL at Ludicrous SpeedScyllaDB: NoSQL at Ludicrous Speed
ScyllaDB: NoSQL at Ludicrous Speed
 
Introduction to NoSQL & Apache Cassandra
Introduction to NoSQL & Apache CassandraIntroduction to NoSQL & Apache Cassandra
Introduction to NoSQL & Apache Cassandra
 
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
 
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...
 
Signal Digital: The Skinny on Wide Rows
Signal Digital: The Skinny on Wide RowsSignal Digital: The Skinny on Wide Rows
Signal Digital: The Skinny on Wide Rows
 
NewSQL - The Future of Databases?
NewSQL - The Future of Databases?NewSQL - The Future of Databases?
NewSQL - The Future of Databases?
 
Cassandra: Open Source Bigtable + Dynamo
Cassandra: Open Source Bigtable + DynamoCassandra: Open Source Bigtable + Dynamo
Cassandra: Open Source Bigtable + Dynamo
 
Druid realtime indexing
Druid realtime indexingDruid realtime indexing
Druid realtime indexing
 
Cassandra Tuning - above and beyond
Cassandra Tuning - above and beyondCassandra Tuning - above and beyond
Cassandra Tuning - above and beyond
 
BI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache CassandraBI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache Cassandra
 
Webinar: Diagnosing Apache Cassandra Problems in Production
Webinar: Diagnosing Apache Cassandra Problems in ProductionWebinar: Diagnosing Apache Cassandra Problems in Production
Webinar: Diagnosing Apache Cassandra Problems in Production
 
Re-Engineering PostgreSQL as a Time-Series Database
Re-Engineering PostgreSQL as a Time-Series DatabaseRe-Engineering PostgreSQL as a Time-Series Database
Re-Engineering PostgreSQL as a Time-Series Database
 
Cassandra concepts, patterns and anti-patterns
Cassandra concepts, patterns and anti-patternsCassandra concepts, patterns and anti-patterns
Cassandra concepts, patterns and anti-patterns
 
Spark and cassandra (Hulu Talk)
Spark and cassandra (Hulu Talk)Spark and cassandra (Hulu Talk)
Spark and cassandra (Hulu Talk)
 
Webinar: Getting Started with Apache Cassandra
Webinar: Getting Started with Apache CassandraWebinar: Getting Started with Apache Cassandra
Webinar: Getting Started with Apache Cassandra
 
Introduction to Cassandra
Introduction to CassandraIntroduction to Cassandra
Introduction to Cassandra
 
Large volume data analysis on the Typesafe Reactive Platform
Large volume data analysis on the Typesafe Reactive PlatformLarge volume data analysis on the Typesafe Reactive Platform
Large volume data analysis on the Typesafe Reactive Platform
 
CassieQ: The Distributed Message Queue Built on Cassandra (Anton Kropp, Cural...
CassieQ: The Distributed Message Queue Built on Cassandra (Anton Kropp, Cural...CassieQ: The Distributed Message Queue Built on Cassandra (Anton Kropp, Cural...
CassieQ: The Distributed Message Queue Built on Cassandra (Anton Kropp, Cural...
 
Cassandra Day Atlanta 2015: Introduction to Apache Cassandra & DataStax Enter...
Cassandra Day Atlanta 2015: Introduction to Apache Cassandra & DataStax Enter...Cassandra Day Atlanta 2015: Introduction to Apache Cassandra & DataStax Enter...
Cassandra Day Atlanta 2015: Introduction to Apache Cassandra & DataStax Enter...
 
OpenTSDB 2.0
OpenTSDB 2.0OpenTSDB 2.0
OpenTSDB 2.0
 

Viewers also liked

신용의 사회 피칭
신용의 사회 피칭신용의 사회 피칭
신용의 사회 피칭
지은 박
 
Android Self Service Solution
Android Self Service SolutionAndroid Self Service Solution
Android Self Service Solution
LITEDA
 
Managing Community Open Source Brands
Managing Community Open Source BrandsManaging Community Open Source Brands
Managing Community Open Source Brands
Shane Curcuru
 
Classification of Matter Overview- Spring 2012
Classification of Matter Overview- Spring 2012Classification of Matter Overview- Spring 2012
Classification of Matter Overview- Spring 2012
jmori1
 
Growing your school in troubled times, sbacs webinar
Growing your school in troubled times, sbacs webinarGrowing your school in troubled times, sbacs webinar
Growing your school in troubled times, sbacs webinar
Rick Newberry
 
Lifestyle unit 8
Lifestyle unit 8Lifestyle unit 8
Lifestyle unit 8
Les Davy
 
Aef4 3 a passive
Aef4 3 a passiveAef4 3 a passive
Aef4 3 a passive
Les Davy
 
облачные сервисы учителю математики
облачные сервисы учителю математикиоблачные сервисы учителю математики
облачные сервисы учителю математики
Fordzon Putilovez
 

Viewers also liked (20)

Articles of Faith
Articles of FaithArticles of Faith
Articles of Faith
 
Education Project Brief
Education Project BriefEducation Project Brief
Education Project Brief
 
Простаблисс
ПростаблиссПростаблисс
Простаблисс
 
신용의 사회 피칭
신용의 사회 피칭신용의 사회 피칭
신용의 사회 피칭
 
Gestão de Canais de Distribuição
Gestão de Canais de DistribuiçãoGestão de Canais de Distribuição
Gestão de Canais de Distribuição
 
Android Self Service Solution
Android Self Service SolutionAndroid Self Service Solution
Android Self Service Solution
 
Managing Community Open Source Brands
Managing Community Open Source BrandsManaging Community Open Source Brands
Managing Community Open Source Brands
 
Ostrava asset management
Ostrava asset managementOstrava asset management
Ostrava asset management
 
Projekt E- građani: Središnji državni portal
Projekt E- građani: Središnji državni portalProjekt E- građani: Središnji državni portal
Projekt E- građani: Središnji državni portal
 
pre launch project in Bhiwadi 9717762246
pre launch project in Bhiwadi 9717762246pre launch project in Bhiwadi 9717762246
pre launch project in Bhiwadi 9717762246
 
Residential plot for sale in kanpura patna
Residential plot for sale in kanpura patnaResidential plot for sale in kanpura patna
Residential plot for sale in kanpura patna
 
1interview1 golda
1interview1 golda1interview1 golda
1interview1 golda
 
PORTFOLIO
PORTFOLIOPORTFOLIO
PORTFOLIO
 
Classification of Matter Overview- Spring 2012
Classification of Matter Overview- Spring 2012Classification of Matter Overview- Spring 2012
Classification of Matter Overview- Spring 2012
 
Growing your school in troubled times, sbacs webinar
Growing your school in troubled times, sbacs webinarGrowing your school in troubled times, sbacs webinar
Growing your school in troubled times, sbacs webinar
 
Why is internet’s Democracy Rebirth so Sexy?
Why is internet’s Democracy Rebirth so Sexy?Why is internet’s Democracy Rebirth so Sexy?
Why is internet’s Democracy Rebirth so Sexy?
 
Lifestyle unit 8
Lifestyle unit 8Lifestyle unit 8
Lifestyle unit 8
 
Aef4 3 a passive
Aef4 3 a passiveAef4 3 a passive
Aef4 3 a passive
 
облачные сервисы учителю математики
облачные сервисы учителю математикиоблачные сервисы учителю математики
облачные сервисы учителю математики
 
Ismael alcolea Marketing Online EN
Ismael alcolea Marketing Online ENIsmael alcolea Marketing Online EN
Ismael alcolea Marketing Online EN
 

Similar to Nibiru: Building your own NoSQL store

Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2
ice799
 
ParaForming - Patterns and Refactoring for Parallel Programming
ParaForming - Patterns and Refactoring for Parallel ProgrammingParaForming - Patterns and Refactoring for Parallel Programming
ParaForming - Patterns and Refactoring for Parallel Programming
khstandrews
 
Exploitation and State Machines
Exploitation and State MachinesExploitation and State Machines
Exploitation and State Machines
Michael Scovetta
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking system
Jesse Vincent
 

Similar to Nibiru: Building your own NoSQL store (20)

IMCSummit 2015 - Day 2 IT Business Track - 4 Myths about In-Memory Databases ...
IMCSummit 2015 - Day 2 IT Business Track - 4 Myths about In-Memory Databases ...IMCSummit 2015 - Day 2 IT Business Track - 4 Myths about In-Memory Databases ...
IMCSummit 2015 - Day 2 IT Business Track - 4 Myths about In-Memory Databases ...
 
Under The Hood Of A Shard-Per-Core Database Architecture
Under The Hood Of A Shard-Per-Core Database ArchitectureUnder The Hood Of A Shard-Per-Core Database Architecture
Under The Hood Of A Shard-Per-Core Database Architecture
 
Surge2012
Surge2012Surge2012
Surge2012
 
Fast and Scalable Python
Fast and Scalable PythonFast and Scalable Python
Fast and Scalable Python
 
Data oriented design and c++
Data oriented design and c++Data oriented design and c++
Data oriented design and c++
 
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
 
Beyond the DSL - Unlocking the power of Kafka Streams with the Processor API
Beyond the DSL - Unlocking the power of Kafka Streams with the Processor APIBeyond the DSL - Unlocking the power of Kafka Streams with the Processor API
Beyond the DSL - Unlocking the power of Kafka Streams with the Processor API
 
There's no magic... until you talk about databases
 There's no magic... until you talk about databases There's no magic... until you talk about databases
There's no magic... until you talk about databases
 
Postgres clusters
Postgres clustersPostgres clusters
Postgres clusters
 
Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2
 
Avoiding big data antipatterns
Avoiding big data antipatternsAvoiding big data antipatterns
Avoiding big data antipatterns
 
The Computer Science Behind a modern Distributed Database
The Computer Science Behind a modern Distributed DatabaseThe Computer Science Behind a modern Distributed Database
The Computer Science Behind a modern Distributed Database
 
Is NoSQL The Future of Data Storage?
Is NoSQL The Future of Data Storage?Is NoSQL The Future of Data Storage?
Is NoSQL The Future of Data Storage?
 
ParaForming - Patterns and Refactoring for Parallel Programming
ParaForming - Patterns and Refactoring for Parallel ProgrammingParaForming - Patterns and Refactoring for Parallel Programming
ParaForming - Patterns and Refactoring for Parallel Programming
 
Exploitation and State Machines
Exploitation and State MachinesExploitation and State Machines
Exploitation and State Machines
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking system
 
Speeding up R with Parallel Programming in the Cloud
Speeding up R with Parallel Programming in the CloudSpeeding up R with Parallel Programming in the Cloud
Speeding up R with Parallel Programming in the Cloud
 
Docker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xDocker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12x
 
Distributed Database Consistency: Architectural Considerations and Tradeoffs
Distributed Database Consistency: Architectural Considerations and TradeoffsDistributed Database Consistency: Architectural Considerations and Tradeoffs
Distributed Database Consistency: Architectural Considerations and Tradeoffs
 
Stripe CTF3 wrap-up
Stripe CTF3 wrap-upStripe CTF3 wrap-up
Stripe CTF3 wrap-up
 

More from Edward Capriolo

Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for Cassandra
Edward Capriolo
 

More from Edward Capriolo (13)

Cassandra4hadoop
Cassandra4hadoopCassandra4hadoop
Cassandra4hadoop
 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for Cassandra
 
M6d cassandra summit
M6d cassandra summitM6d cassandra summit
M6d cassandra summit
 
Apache Kafka Demo
Apache Kafka DemoApache Kafka Demo
Apache Kafka Demo
 
Cassandra NoSQL Lan party
Cassandra NoSQL Lan partyCassandra NoSQL Lan party
Cassandra NoSQL Lan party
 
Breaking first-normal form with Hive
Breaking first-normal form with HiveBreaking first-normal form with Hive
Breaking first-normal form with Hive
 
Casbase presentation
Casbase presentationCasbase presentation
Casbase presentation
 
Hadoop Monitoring best Practices
Hadoop Monitoring best PracticesHadoop Monitoring best Practices
Hadoop Monitoring best Practices
 
Whirlwind tour of Hadoop and HIve
Whirlwind tour of Hadoop and HIveWhirlwind tour of Hadoop and HIve
Whirlwind tour of Hadoop and HIve
 
Cli deep dive
Cli deep diveCli deep dive
Cli deep dive
 
Cassandra as Memcache
Cassandra as MemcacheCassandra as Memcache
Cassandra as Memcache
 
Counters for real-time statistics
Counters for real-time statisticsCounters for real-time statistics
Counters for real-time statistics
 
Real world capacity
Real world capacityReal world capacity
Real world capacity
 

Recently uploaded

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 

Recently uploaded (20)

Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdf
 

Nibiru: Building your own NoSQL store