Tracking your data across the fourth dimensionJeremy Cook
How can you track all changes to your data across time? This talk will introduce you to the techniques you need to do that. We’ll examine the theory behind temporal database tables as well as the changes in the SQL:2011 standard that support them. We’ll also look at how you can implement temporal tables, both for DBMS that support SQL:2011 and those that don't. By the end of this talk you should be able to take your data to the fourth dimension.
MVC allows you to divide responsibilities in your application but offers no help in building the most critical part: the domain logic. This talk will introduce ways that can help you to encapsulate the richness of your domain. We'll look at patterns such as Action Domain Responder and Hexagonal Architecture before introducing Domain Driven Design. Find out how to get beyond MVC and begin modelling your domains in rich, powerful and reusable ways.
Given at TrueNorthPHP 2014:
"MVC presents a great way to divide responsibilities in your application but it offers no help in building the most critical part: the model or domain. This talk will introduce ways that can help you to encapsulate the richness of your domain. We'll look at Action Domain Response as a new way of thinking about the concepts presented in MVC before examining Hexagonal Architecture, allowing you to easily reuse your domain across multiple delivery mechanisms. We'll then finish with an introduction to Domain Driven Design, a technique that allows you to closely align your domain with the business problems it is solving while helping keep things well designed and easily maintainable. By the end of this talk you should have the knowledge needed to begin modelling your domains more powerfully while keeping them aligned to the real world problems they solve."
Back to the future - Temporal Table in SQL Server 2016Stéphane Fréchette
SQL Server 2016 CTP2 introduced support for temporal tables as a database feature that provides built-in support for provide information about data stored in the table at any point in time rather than only the data that is correct at the current moment in time.
Topics will cover:
What is a Temporal Table?, Why Temporal? How does this work?, When to use (use cases) and demos...
Everything That Is Really Useful in Oracle Database 12c for Application Devel...Lucas Jellema
The functionality available to Oracle Database developers has evolved over all releases of Oracle Database. The improvements have allowed for faster development, richer functionality, and better-performing code as well as clearly establishing the role of the database in multitier applications and SOA architectures. Areas of recent improvement include core SQL (with inline PL/SQL), flashback, data pattern processing, zero-downtime application upgrades, XML manipulation, JSON support, inbound and outbound HTTP processing, data redaction, fine-grained auditing and authorization, and PL/SQL language extensions. This session demonstrates the most-useful 12c database features for application developers.
Tracking your data across the fourth dimensionJeremy Cook
How can you track all changes to your data across time? This talk will introduce you to the techniques you need to do that. We’ll examine the theory behind temporal database tables as well as the changes in the SQL:2011 standard that support them. We’ll also look at how you can implement temporal tables, both for DBMS that support SQL:2011 and those that don't. By the end of this talk you should be able to take your data to the fourth dimension.
MVC allows you to divide responsibilities in your application but offers no help in building the most critical part: the domain logic. This talk will introduce ways that can help you to encapsulate the richness of your domain. We'll look at patterns such as Action Domain Responder and Hexagonal Architecture before introducing Domain Driven Design. Find out how to get beyond MVC and begin modelling your domains in rich, powerful and reusable ways.
Given at TrueNorthPHP 2014:
"MVC presents a great way to divide responsibilities in your application but it offers no help in building the most critical part: the model or domain. This talk will introduce ways that can help you to encapsulate the richness of your domain. We'll look at Action Domain Response as a new way of thinking about the concepts presented in MVC before examining Hexagonal Architecture, allowing you to easily reuse your domain across multiple delivery mechanisms. We'll then finish with an introduction to Domain Driven Design, a technique that allows you to closely align your domain with the business problems it is solving while helping keep things well designed and easily maintainable. By the end of this talk you should have the knowledge needed to begin modelling your domains more powerfully while keeping them aligned to the real world problems they solve."
Back to the future - Temporal Table in SQL Server 2016Stéphane Fréchette
SQL Server 2016 CTP2 introduced support for temporal tables as a database feature that provides built-in support for provide information about data stored in the table at any point in time rather than only the data that is correct at the current moment in time.
Topics will cover:
What is a Temporal Table?, Why Temporal? How does this work?, When to use (use cases) and demos...
Everything That Is Really Useful in Oracle Database 12c for Application Devel...Lucas Jellema
The functionality available to Oracle Database developers has evolved over all releases of Oracle Database. The improvements have allowed for faster development, richer functionality, and better-performing code as well as clearly establishing the role of the database in multitier applications and SOA architectures. Areas of recent improvement include core SQL (with inline PL/SQL), flashback, data pattern processing, zero-downtime application upgrades, XML manipulation, JSON support, inbound and outbound HTTP processing, data redaction, fine-grained auditing and authorization, and PL/SQL language extensions. This session demonstrates the most-useful 12c database features for application developers.
Libraries and History
The “old” Date/Calendar classes
The new (≥Java8) java.time package
Basic concepts
Main classes
Date operations
Dealing with SQL dates
Teaching material for the course of "Tecniche di Programmazione" at Politecnico di Torino in year 2014/2015. More information: http://bit.ly/tecn-progr
The Date and Time functions section will include GETDATE(), DATEPART(), DATEADD(), DATEDIFF(), EOMONTH (2012), along with a variety of DATE/TIME FROMPARTS Functions. Following that will be the logical functions which includes CASE, IIF, CHOOSE, and COALESCE. ISNULL is usually covered in this section, but we already covered that in an earlier session.
This presentations shows how to create a time/date dimension for PowerPivot from the date data in your fact table. I also shows the DAX functions that you can use to add columns to the fact table or a separate dimension table.
Best Practices for the Hadoop Data Warehouse: EDW 101 for Hadoop ProfessionalsCloudera, Inc.
The enormous legacy of EDW experience and best practices can be adapted to the unique capabilities of the Hadoop environment. In this webinar, in a point-counterpoint format, Dr. Kimball will describe standard data warehouse best practices including the identification of dimensions and facts, managing primary keys, and handling slowly changing dimensions (SCDs) and conformed dimensions. Eli Collins, Chief Technologist at Cloudera, will describe how each of these practices actually can be implemented in Hadoop.
Attend this session to learn how to rapidly develop blazingly fast cross-platform big data applications using Sencha and Speedment. Sencha enables developers to leverage the power of modern web technology (for example, HTML5, CSS, and JavaScript) to build universal web applications that can run on desktops, tablets, and smartphones. Speedment, on the other hand, enables developers to rapidly convert their large relational databases into in-memory Java objects (within Java Virtual Machine) that speed up data access by orders of magnitude.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
More Related Content
Similar to Track your data across the fourth dimension
Libraries and History
The “old” Date/Calendar classes
The new (≥Java8) java.time package
Basic concepts
Main classes
Date operations
Dealing with SQL dates
Teaching material for the course of "Tecniche di Programmazione" at Politecnico di Torino in year 2014/2015. More information: http://bit.ly/tecn-progr
The Date and Time functions section will include GETDATE(), DATEPART(), DATEADD(), DATEDIFF(), EOMONTH (2012), along with a variety of DATE/TIME FROMPARTS Functions. Following that will be the logical functions which includes CASE, IIF, CHOOSE, and COALESCE. ISNULL is usually covered in this section, but we already covered that in an earlier session.
This presentations shows how to create a time/date dimension for PowerPivot from the date data in your fact table. I also shows the DAX functions that you can use to add columns to the fact table or a separate dimension table.
Best Practices for the Hadoop Data Warehouse: EDW 101 for Hadoop ProfessionalsCloudera, Inc.
The enormous legacy of EDW experience and best practices can be adapted to the unique capabilities of the Hadoop environment. In this webinar, in a point-counterpoint format, Dr. Kimball will describe standard data warehouse best practices including the identification of dimensions and facts, managing primary keys, and handling slowly changing dimensions (SCDs) and conformed dimensions. Eli Collins, Chief Technologist at Cloudera, will describe how each of these practices actually can be implemented in Hadoop.
Attend this session to learn how to rapidly develop blazingly fast cross-platform big data applications using Sencha and Speedment. Sencha enables developers to leverage the power of modern web technology (for example, HTML5, CSS, and JavaScript) to build universal web applications that can run on desktops, tablets, and smartphones. Speedment, on the other hand, enables developers to rapidly convert their large relational databases into in-memory Java objects (within Java Virtual Machine) that speed up data access by orders of magnitude.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Monitoring Java Application Security with JDK Tools and JFR Events
Track your data across the fourth dimension
1. Text
Tracking your Data Across the Fourth Dimension
Wellington Waterloo Web Makers Meetup
2. “In physics, spacetime is any mathematical model
that combines space and time into a single
interwoven continuum.”
–Wikipedia
3. Databases are Good at
‘Now’
CRUD
Create data
Read data
Update data
Delete data
4. Bread and Butter Queries
How many people work
in department X?
What’s the total amount
paid in commissions by
department?
What was the top selling
product in the last year?
5. The Fourth Dimension…
Compare reporting
relationships one month ago,
today and in one months time
Show me all changes made
to this data over time
As of one month ago, what
did I believe to be the truth
about this data yesterday and
what did I actually believe
was the truth yesterday?
6. “A temporal database is a database with built-in
support for handling data involving time…”
–Wikipedia
”
7. A Little History…
Need for temporal support identified as early as 1992
Initial attempts to get support for this into the SQL
standard were rejected
Finally made it into the SQL:2011 standard
10. Temporal Aspects
Decision Time
Valid Time
Transaction Time
A table that implements one of these is temporal, two
is bi-temporal, more is multi-temporal
11. Decision Time
Records when a decision was taken
Stored as a timestamp
You may be doing this already…
12. Decision Time Example
Owner Property Decision Time
Jeremy ‘Some place’ 2012-09-28
Adam ‘Some place’ 2014-02-21
13. Valid Time
The time during which a fact is true with respect to the
real world
Modelled as a range between two timestamps
Closed at lower bound, can be open at upper bound
14. Valid Time Example
Owner Property StartVT EndVT
Jeremy ‘Some place’ 2012-09-28 2014-02-20
Adam ‘Some place’ 2014-02-21 ∞
15. Valid Time Example
Owner Property StartVT EndVT
Jeremy ‘Some place’ 2012-09-28 2014-03-20
Adam ‘Some place’ 2014-03-21 ∞
16. Transaction Time
The time period during which a fact stored in the
database is considered to be true
Modelled as a range between two timestamps
Closed at lower bound, can be open at upper bound
17. Transaction Time Example
Owner Property StartVT EndVT StartTT EndTT
Jeremy ‘Some
place’
2012-09-2
8
2014-02-2
0
2012-09-2
8
2014-09-0
9
Adam ‘Some
place’
2014-02-2
1 ∞ 2014-02-2
1
2014-09-0
9
Jeremy ‘Some
place’
2012-09-2
8
2014-03-2
0
2014-09-0
9 ∞
Adam ‘Some
place’
2014-03-2
1 ∞ 2014-09-0
9 ∞
18. Valid Time and Transaction
Time are Orthogonal
Valid Time
Transaction Time
20. SQL:2011 Temporal
Additions
!
PERIOD type for date ranges in table definitions
Can query for data in a period using new predicates
CONTAINS, OVERLAPS, EQUALS, PRECEDES and
IMMEDIATELY SUCCEEDS
Can also update or delete data matching a portion of a
period using FOR PORTION OF {period_name} FROM
{date} TO {date}
21. Implementing Valid Time
Done by adding columns for start and end with a
period constraint on the columns
Period must also be included as part of the primary key
22. Table Definition using Valid
Time
CREATE TABLE Emp(
ENo INTEGER,
StartVT DATE,
EndVT DATE,
EDept INTEGER,
PERIOD FOR EValidTime (StartVT, EndVT),
PRIMARY KEY (ENo, EValidTime WITHOUT OVERLAPS),
)
23. Foreign Key Problems…
It’s possible that rows in child tables may reference
rows in parent tables that are not currently valid and
vice versa
Therefore foreign key constraints have to be updated
where needed to include period data
24. Valid time foreign key
definition
ALTER TABLE Emp
ADD FOREIGN KEY (Edept, PERIOD EValidTime)
REFERENCES Dept (DNo, PERIOD DValidTime)
25. Querying a Table using Valid
Time
SELECT Ename, Edept
FROM Emp
WHERE ENo = 22217 AND
EValidTime CONTAINS DATE ‘2011-01-02’;
!
SELECT Ename, Edept
FROM Emp
WHERE ENo = 22217 AND
EValidTime OVERLAPS
PERIOD (DATE ‘2010-01-01', DATE ‘2011-01-01');
26. Implementing Transaction
Time
RDBMS automatically creates a snapshot when data is
updated or deleted
Done by adding columns for start, end and a period for
them
Must also add WITH SYSTEM VERSIONING to create
table statement
27. Table Definition using
Transaction Time
CREATE TABLE Emp
ENo INTEGER,
Sys_start TIMESTAMP(12) GENERATED
ALWAYS AS ROW START,
Sys_end TIMESTAMP(12) GENERATED
ALWAYS AS ROW END,
EName VARCHAR(30),
PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)
) WITH SYSTEM VERSIONING
28. Querying a Table using
Transaction Time
SELECT ENo,EName,Sys_Start,Sys_End
FROM Emp FOR SYSTEM_TIME AS OF
TIMESTAMP '2011-01-02 00:00:00’;
!
SELECT ENo,EName,Sys_Start,Sys_End
FROM Emp FOR SYSTEM_TIME FROM
TIMESTAMP '2011-01-02 00:00:00’TO
TIMESTAMP '2011-12-31 00:00:00’;
29. Bi-Temporal table definition
CREATE TABLE Emp(
ENo INTEGER,
StartVT DATE,
EndVT DATE,
EDept INTEGER,
PERIOD FOR EValidTime (StartVT, EndVT),
Sys_start TIMESTAMP(12) GENERATED ALWAYS AS ROW START,
Sys_end TIMESTAMP(12) GENERATED ALWAYS AS ROW END,
EName VARCHAR(30),
PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end),
PRIMARY KEY (ENo, EValidTime WITHOUT OVERLAPS),
FOREIGN KEY (Edept, PERIOD EValidTime)
REFERENCES Dept (DNo, PERIOD DValidTime)
) WITH SYSTEM VERSIONING
30. Who supports SQL:2011
Temporal?
IBM DB2. Called “Time Travel Queries”, although
different syntax for FOR SYSTEM_TIME AS OF
Oracle 12c, in compliance with SQL:2011
Others?
31. Further Reading
‘Developing Time Oriented Applications in SQL’ by
Richard Snodgrass
‘Temporal Features in SQL:2011’
‘Time and Relational Theory: Temporal Databases in
the Relational Model and SQL'
32. Thanks for listening
Any questions?
Contact me:
@JCook21
jeremycook0@gmail.com
I’d love some feedback!