SlideShare ist ein Scribd-Unternehmen logo
1 von 79
Downloaden Sie, um offline zu lesen
Converting 85% of Dutch Primary Schools 

from Oracle to PostgreSQL
Martijn Dashorst

topicus.nl
Martijn Dashorst
@dashorst
martijndashorst.com
github.com/dashorst
“I’d rather not work with
databases”
Martijn Dashorst (1997, first job interview)
Big thank you to
Klaasjan Brand
Please Give Feedback at

https://2019.pgconf.eu/f
What is ParnasSys?
Why migrate?
Planning
Stages
Conclusions & Questions
Dutch Education System
AGES
4-12
13-16/18
16-23
Primary Education
Secondary Education
Vocational/University Education
pre-vocational (4 yrs), pre-applied science (5 yrs), pre-research university (6 yrs)
vocational (4 yrs), applied science (4 yrs, bachelor), pre-research university (bachelor/master)
EDUCATION TYPE
Primary Education (4-12)
1.5M
students
141k
employees
6973
schoolsages 4-12, 2019-2020 2018 2018
Source: https://www.onderwijsincijfers.nl
Financing Primary Schools
€ government
school
teachers
buildings
materials
€
taxes lumpsum
number of

students

at 1 October
Financing Primary Schools
€ government
school
teachers
buildings
materials
€
taxes lumpsum
number of

students

at 1 October
administration
ParnasSys ~ noun. 

1. A SaaS to run primary schools by keeping student
records for school financing, student counseling and
guidance, attendance keeping and communicating with
parents


ParnasSys ~ noun. 

1. A SaaS to run primary schools by keeping student
records for school financing, student counseling and
guidance, attendance keeping and communicating with
parents
2. The only pinkmagenta administration 

system in the world
Java Web App
Hibernate (ORM)
Business Objects
(SAP)
MAXDB/SAPDB
Single database

Single schema

Multi-tenant
Development started

October 2003
Production in 

April 2004
First Database Migration in 2005
SAPDB/MAXDB ORACLE
User base growing fast

Unpredictable query performance in MaxDB
"Nobody got ever fired
for buying Oracle"
85% of dutch
primary schools
use ParnasSys
~5M student dossiers
in our database
1,270,000 students in 2019-2020
2019
85% of dutch
primary schools
use ParnasSys
~5M student dossiers
in our database
1,270,000 students in 2019-2020
2019
800+ pages 360 tables data & indices
~ 2TB
user files
~ 5TB
What is ParnasSys?
Why migrate?
Planning
Stages
Conclusions & Questions
Mismatch Between Future of
Oracle and our Product
Cost Structure of Running
Oracle Not Compatible with our
Profitability
The Oracle Migration Assistant
Paid Us a Visit
TM
The stranglehold

of the software giants
[...] Especially Oracle would
force unfair contracts upon
clients, and claim many millions
per year of late payments. [...]
http://fd.nl/weekend/1318745/de-wurggreep-van-de-softwarereuzen
Developer Happiness
Or How Do I Run My Database
on My Local Machine
DevOps Happiness on Oracle
is Incompatible with our
Profitability
What is ParnasSys?
Why migrate?
Planning
Stages
Conclusions & Questions
Inventory
✅ Database contents

✅ Java Application Code

✅ Business Objects Universe

✅ Business Objects Reports

✅ Backup & Restore

✅ Monitoring

✅ Training
🚫 No stored procedures

🚫 No custom functions

🚫 No triggers
Seasonality of Education
2 Moments in a Year to Migrate:
X-Mas & Summer Vacation
X-Mass 2 weeks
23 December 2019–5 January 2020
Summer vacation(s)
North
15 juli 2019–23 august 2019

Middle
22 juli 2019–30 august 2019

South
8 juli 2019–16 august 2019
Ideal migration moment:

start of summer vacation
Stage 1: make it run

incorrectly, correctly, fast

Stage 2: migrate production

in accordance to customer expectations
1 Year Migration
1 Year Migration
3 Year Migration
What is ParnasSys?
Why migrate?
Planning
Stages
Conclusions & Questions
Stage 1: make it run
Free

Works™

Great to find issues in your
application
Perl

“The only language that looks the same before
and after RSA encryption”

Direct datatype mapping

E.G. number(1,0) does not map to boolean

Slow

One import takes whole day

Stable or fast (pick one)

Single-threaded: stable but slow

Multi-threaded: fast but unstable

One-way, big bang only
Differences between Oracle and PostgreSQL
“The good thing about standards is that there are
so many to choose from.”
― Andrew S. Tanenbaum
Mapping datatypes
Oracle PostgreSQL
number(1,0) number(1,0)
boolean
Java
int
boolean
enum Sex {

Female,
Male

}
Business
study year (1-8)
present (yes/no)
sex (female/male)
number(1,0)
number(1,0) number(1,0)
varchar2(6) varchar2(6)
ORM is 100% portable
@Basic
@Temporal(TemporalType.DATE)
private Date birthdate;
@Formula("add_months(birthdate, (to_char(sysdate, 'yyyy') to_char(birth
@Temporal(TemporalType.DATE)
private Date birthday;
CREATE OR REPLACE FUNCTION birthday(birthdate IN DATE) RETURN D
IS
BEGIN
RETURN add_months(birthdate-1, 

(to_char(sysdate, 'yyyy')
- to_char(birthdate, 'yyyy')) * 12)+1;
END;
Oracle speaks in tongues
select 1 from dual
select nvl(null, 'n/a') from dual
select * from (select x,y from ...) 

where rownum between 100 and 110
sysdate
trunc
Performance
ID ORGANIZATION NAME BIRTHDATE ...

14342 1231 JOHN SMITH 2010-09-23
14345 1231 MARTIJN DASHORST 2011-03-12
...
ID ORGANIZATION NAME

151231 1231 Group 1A
151232 1231 Group 1B
...
tenant identifier
Oracle is smarter...
UPDATE
testresult tr
SET
tr.endresult = TRUE
WHERE
tr.organisation = ?
AND tr.testpart IN (
SELECT part1.id
FROM
testpart part1
WHERE
part1.preference = (
SELECT MIN(part2.preference)
FROM
testresult tr3
INNER JOIN testpart part2 ON
tr3.testpart = part2.id
WHERE
part2.preference > 0
AND tr3.score IS NOT NULL
AND tr3.test = tr.test
AND ((part1.usemodulenorm IS NULL
AND part2.usemodulenorm IS NULL)
OR part1.usemodulenorm = part2.usemodulenorm)))
Oracle is smarter...UPDATE
testresult tr
SET
tr.endresult = TRUE
WHERE
tr.organisation = ?
AND tr.testpart IN (
SELECT part1.id
FROM
testpart part1
WHERE
part1.preference = (
SELECT MIN(part2.preference)
FROM
testresult tr3
INNER JOIN testpart part2 ON
tr3.testpart = part2.id
WHERE
part2.preference > 0
AND tr3.test = tr.test
UPDATE
testresult tr
SET
tr.endresult = TRUE
WHERE
tr.organisation = ?
AND tr.testpart IN (
SELECT part1.id
FROM
testpart part1
WHERE
part1.preference = (
SELECT MIN(part2.preference)
FROM
testresult tr3
INNER JOIN testpart part2 ON
tr3.testpart = part2.id
WHERE
part2.preference > 0
AND tr3.test = tr.test
AND tr3.organisation = tr.organisation))
100x
improvement
Java Web App
Business Objects
(SAP)
PDF
Universe
Report definition
Parameters
PDF
Teachers Generate a lot of PDFs

but that's OK, because 

Business Objects generates a lot of SQL
Business Objects 

can be a bit nostalgic
Quizz!
SELECT *
FROM A, B
WHERE B.column(+) = A.column
SELECT *
FROM A
RIGHT OUTER JOIN B
ON B.column = A.column
SELECT *
FROM B
LEFT OUTER JOIN A
ON B.column = A.column
SELECT *
FROM A
LEFT OUTER JOIN B
ON B.column = A.column
SELECT *
FROM B
RIGHT OUTER JOIN A
ON B.column = A.column
1 2
3 4
Quizz!
SELECT *
FROM A, B
WHERE B.column(+) = A.column
SELECT *
FROM A
RIGHT OUTER JOIN B
ON B.column = A.column
SELECT *
FROM B
LEFT OUTER JOIN A
ON B.column = A.column
1 2
Production ready?
Application works

Business Objects works
GO!
Application works

Business Objects works
GO!
How long takes migration?
Behavior of application under actual load?

- Heavy use of application side caching in Java process

- Modification of data

- Synthetic tests lie
Can we fall back to Oracle?
Stage 2: Migrate Production
Need help...

1-800-KILLORACLE
Why don't you use HVR?
–Splendid Data
Cross-database replication
using redo logs
Remote UNIX

Machine
Remote XYZ

Machine
Hub Machine
PC
HVR
HVR
Scheduler HVR
HVR
HVR
GUI
Database
Location
Hub DB
Database
Location
IntegrateCapture
Inetd
Router
Transaction
Files
Inetd
HVR
Listener
Service
Lots of databases supported
Lots of databases supported
Why HVR?
• Speed

• Real-time sync with low latency

• Options to test prior to actual migration

• Safe

• Fallback

• Expensive tool, but Special Price for Special Friend
Noteworthy issues
• Use primary key on each table

• Fix datatype incompatibilities because of differences between databases

E.G. time in date field ✅ Oracle 🚫 PostgreSQL

• Disable constraint checking in target database

• Don't perform DDL changes

• Don't update too many rows in a table too often
Oracle based deployment
DB1
PROD
failsafe
DB0
PROD TEST
APP
PROD
Business
Objects
APP
TEST
ORACLEORACLE ORACLE
APP
PROD
APP
PROD
Fail safe server
Offline

Archive Log shipping
DB0 DB1 DB2
PROD PROD TEST
TEST
failsafe
TEST
PROD
failsafe
PROD

standby
APP
PROD
Business
Objects
APP
TEST
ORACLEORACLE
ORACLE
ORACLE
PSQL PSQL
PSQL
HVR migration deployment
DB0 DB1 DB2
PROD PROD TEST
TEST
failsafe
TEST
PROD
failsafe
PROD

standby
APP
PROD
Business
Objects
APP
TEST
ORACLEORACLE
ORACLE
ORACLE
PSQL PSQL
PSQL
Prod Testing Business Objects
PostgreSQL based deployment
DB1 DB2
PROD
failsafe
DB1
PROD TEST
APP
PROD
Business
Objects
APP
TEST
PSQLPSQL PSQL
APP
PROD
APP
PROD
DB0
PROD
ORACLE
D-Dayde-oracle day
22 Juli 2019
What is ParnasSys?
Why migrate?
Planning
Stages
Conclusions & Questions
Make a *really* good inventory of things that have to be migrated

Pick a strategy that works for you

Plan around your business to minimise risk and maximise opportunity

A great way to find bugs in your system

Don't be afraid to pay for tools and help
“Nobody got fired from
migrating away from Oracle”
“Yet”
Migrate our Secondary Education
Application from Oracle to PostgreSQL
Feedback

https://2019.pgconf.eu/f
Questions?
THANK YOU!
@dashorst
martijndashorst.com
github.com/dashorst

Weitere ähnliche Inhalte

Ähnlich wie Converting 85% of Dutch Primary Schools from Oracle to PostgreSQL

Ähnlich wie Converting 85% of Dutch Primary Schools from Oracle to PostgreSQL (20)

Resume quaish abuzer
Resume quaish abuzerResume quaish abuzer
Resume quaish abuzer
 
Challenges of Operationalising Data Science in Production
Challenges of Operationalising Data Science in ProductionChallenges of Operationalising Data Science in Production
Challenges of Operationalising Data Science in Production
 
Insync10 anthony spierings
Insync10 anthony spieringsInsync10 anthony spierings
Insync10 anthony spierings
 
Resume
ResumeResume
Resume
 
Jithender_3+Years_Exp_ETL Testing
Jithender_3+Years_Exp_ETL TestingJithender_3+Years_Exp_ETL Testing
Jithender_3+Years_Exp_ETL Testing
 
Girish_Resume
Girish_ResumeGirish_Resume
Girish_Resume
 
Ravikanth_CV_10 yrs_ETL-BI-BigData-Testing
Ravikanth_CV_10 yrs_ETL-BI-BigData-TestingRavikanth_CV_10 yrs_ETL-BI-BigData-Testing
Ravikanth_CV_10 yrs_ETL-BI-BigData-Testing
 
Cv software engineer ameen odeh 2018
Cv software engineer ameen odeh 2018Cv software engineer ameen odeh 2018
Cv software engineer ameen odeh 2018
 
Prasad_Resume
Prasad_ResumePrasad_Resume
Prasad_Resume
 
Arun Kondra
Arun KondraArun Kondra
Arun Kondra
 
BigData_Krishna Kumar Sharma
BigData_Krishna Kumar SharmaBigData_Krishna Kumar Sharma
BigData_Krishna Kumar Sharma
 
Tarun_Medimi
Tarun_MedimiTarun_Medimi
Tarun_Medimi
 
tej..
tej..tej..
tej..
 
Jeeva_Resume
Jeeva_ResumeJeeva_Resume
Jeeva_Resume
 
Debanshu_CV
Debanshu_CVDebanshu_CV
Debanshu_CV
 
Teradata - Hadoop profile
Teradata - Hadoop profileTeradata - Hadoop profile
Teradata - Hadoop profile
 
Resume_20112016
Resume_20112016Resume_20112016
Resume_20112016
 
Yeswanth-Resume
Yeswanth-ResumeYeswanth-Resume
Yeswanth-Resume
 
Lokesh_Reddy_Datastage_Resume
Lokesh_Reddy_Datastage_ResumeLokesh_Reddy_Datastage_Resume
Lokesh_Reddy_Datastage_Resume
 
Nitin - Data Specialist
Nitin - Data SpecialistNitin - Data Specialist
Nitin - Data Specialist
 

Mehr von Martijn Dashorst

HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0
HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0
HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0Martijn Dashorst
 
From Floppy Disks to Cloud Deployments
From Floppy Disks to Cloud DeploymentsFrom Floppy Disks to Cloud Deployments
From Floppy Disks to Cloud DeploymentsMartijn Dashorst
 
Solutions for when documentation fails
Solutions for when documentation fails Solutions for when documentation fails
Solutions for when documentation fails Martijn Dashorst
 
Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8Martijn Dashorst
 
Java Serialization Deep Dive
Java Serialization Deep DiveJava Serialization Deep Dive
Java Serialization Deep DiveMartijn Dashorst
 
Scrum: van praktijk naar onderwijs
Scrum: van praktijk naar onderwijsScrum: van praktijk naar onderwijs
Scrum: van praktijk naar onderwijsMartijn Dashorst
 
Who Automates the Automators? (Quis Automatiet Ipsos Automates?)
Who Automates the Automators? (Quis Automatiet Ipsos Automates?)Who Automates the Automators? (Quis Automatiet Ipsos Automates?)
Who Automates the Automators? (Quis Automatiet Ipsos Automates?)Martijn Dashorst
 
Wicket 10 years and beyond
Wicket   10 years and beyond Wicket   10 years and beyond
Wicket 10 years and beyond Martijn Dashorst
 
Apache Wicket and Java EE sitting in a tree
Apache Wicket and Java EE sitting in a treeApache Wicket and Java EE sitting in a tree
Apache Wicket and Java EE sitting in a treeMartijn Dashorst
 
Vakmanschap is meesterschap
Vakmanschap is meesterschapVakmanschap is meesterschap
Vakmanschap is meesterschapMartijn Dashorst
 
Keep your Wicket application in production
Keep your Wicket application in productionKeep your Wicket application in production
Keep your Wicket application in productionMartijn Dashorst
 
Wicket In Action - oredev2008
Wicket In Action - oredev2008Wicket In Action - oredev2008
Wicket In Action - oredev2008Martijn Dashorst
 
Guide To Successful Graduation at Apache
Guide To Successful Graduation at ApacheGuide To Successful Graduation at Apache
Guide To Successful Graduation at ApacheMartijn Dashorst
 

Mehr von Martijn Dashorst (20)

HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0
HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0
HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0
 
From Floppy Disks to Cloud Deployments
From Floppy Disks to Cloud DeploymentsFrom Floppy Disks to Cloud Deployments
From Floppy Disks to Cloud Deployments
 
SOLID principles
SOLID principlesSOLID principles
SOLID principles
 
Solutions for when documentation fails
Solutions for when documentation fails Solutions for when documentation fails
Solutions for when documentation fails
 
Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8
 
Code review drinking game
Code review drinking gameCode review drinking game
Code review drinking game
 
Java Serialization Deep Dive
Java Serialization Deep DiveJava Serialization Deep Dive
Java Serialization Deep Dive
 
Code review drinking game
Code review drinking gameCode review drinking game
Code review drinking game
 
Scrum: van praktijk naar onderwijs
Scrum: van praktijk naar onderwijsScrum: van praktijk naar onderwijs
Scrum: van praktijk naar onderwijs
 
Who Automates the Automators? (Quis Automatiet Ipsos Automates?)
Who Automates the Automators? (Quis Automatiet Ipsos Automates?)Who Automates the Automators? (Quis Automatiet Ipsos Automates?)
Who Automates the Automators? (Quis Automatiet Ipsos Automates?)
 
De schone coder
De schone coderDe schone coder
De schone coder
 
Wicket 10 years and beyond
Wicket   10 years and beyond Wicket   10 years and beyond
Wicket 10 years and beyond
 
Apache Wicket and Java EE sitting in a tree
Apache Wicket and Java EE sitting in a treeApache Wicket and Java EE sitting in a tree
Apache Wicket and Java EE sitting in a tree
 
The State of Wicket
The State of WicketThe State of Wicket
The State of Wicket
 
Wicket 2010
Wicket 2010Wicket 2010
Wicket 2010
 
Vakmanschap is meesterschap
Vakmanschap is meesterschapVakmanschap is meesterschap
Vakmanschap is meesterschap
 
Keep your Wicket application in production
Keep your Wicket application in productionKeep your Wicket application in production
Keep your Wicket application in production
 
Wicket In Action - oredev2008
Wicket In Action - oredev2008Wicket In Action - oredev2008
Wicket In Action - oredev2008
 
Guide To Successful Graduation at Apache
Guide To Successful Graduation at ApacheGuide To Successful Graduation at Apache
Guide To Successful Graduation at Apache
 
Wicket In Action
Wicket In ActionWicket In Action
Wicket In Action
 

Kürzlich hochgeladen

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 

Kürzlich hochgeladen (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 

Converting 85% of Dutch Primary Schools from Oracle to PostgreSQL