SlideShare une entreprise Scribd logo
1  sur  24
Vote Early, Vote Often:
From Napkin to Canvassing Application
in a Single Weekend
Jim Czuprynski
@JimTheWhyGuy
April 2-6, 2017 in Las Vegas, NV USA #C17LV
My Credentials
• 35+ years of database-centric IT experience
• Oracle DBA since 2001
• Oracle 9i, 10g, 11g, 12c OCP
• Oracle ACE Director
• 100+ articles on databasejournal.com and IOUG SELECT
• Co-author of 4 Oracle books
• Oracle-centric blog (Generally, It Depends)
• Regular speaker at Oracle OpenWorld, IOUG COLLABORATE,
KSCOPE, and Regional OUGs
E-mail me at jczuprynski@zerodefectcomputing.com
Follow me on Twitter: @JimTheWhyGuy
Connect with me on LinkedIn: Jim Czuprynski
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Our Agenda
•Vote Early, Vote Often: Finding the Grain Among the Chaff
•Leveraging Oracle Database 18c for Security, Scalability, and Flexibility
•Building a Data Model In Minutes Instead of Hours
•Napkin, Meet APEX: Fleshing Out Application Basic Components
•Deploying a Desktop Application
•Deploying a Mobile Canvassing Application
•Future Research and Experimentation
Vote Early, Vote Often:
Finding the Grain Among the Chaff
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Use Case: Managing Canvassing in US Congressional Campaign
5
• Understand where potential voters live
• Gerrymandered district stretches several dozen miles across five different counties
and 56 municipalities
• Incumbent opponent won district handily in last five elections
• Figure out how to best deploy a growing multitude of
volunteers
• Volunteers range in age from just able to vote to JFK Democrats
• Everyone is not suited to canvassing!
• Capture results of phone banking, text banking, and canvassing
• Record successful voter commitment to candidate
• Identify possible new volunteers and contributors
• Determine which messages resonate (retain!) …
as well as which ones fall flat (discard!)
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Timelines, Concerns and Restrictions
6
•Extremely short development windows
• Primary ended in April 2018, but canvassing extends only six months
• Should candidate lose, the application can be discarded shortly after
November 2018 election ends
• Data retention concerns
• Data analysis will extend briefly should candidate lose
• Data will be valuable for 2020 race should candidate win
•Security concerns
• One of the hottest congressional races in 2018
• Opponent is incumbent with heavy outside funding
• Opposition is experienced at “going negative”
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Got a Napkin? Then Let’s Build This Thing!
My first attempts at
data modeling and
requirements
gathering …
… including minor issues,
like what computing
environment and security
concerns …
… and defining the
first draft of the
data entry UI
requirements
What could possibly
go wrong?
Leveraging Oracle Database 18c for Security,
Scalability, and Flexibility
• Perfect for the Cloud
• Perfect for Oracle 18c
• Perfect for SmartDB
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Realization: Perfect for the Cloud!
9
• Relatively simple data model and small data volume (<500M rows)
• Short development time frames demand quick orchestration for
compute and storage
• Complex n-dimensional analytics may be required
• Past voting record vs. strength of party affiliation vs. impact of current
government initiatives vs. …
• Determine “flippability” of voter before canvassing starts
• Security is a must … so encryption is crucial!
• Most voter data is publicly available … but contributor and volunteer
information as well as canvassing results are proprietary
• Removes concerns about on-premises development and data storage
• Eliminates risk of penetration by rival campaign
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Realization: Perfect for Oracle 18c!
10
• Tight integration with Oracle Public Cloud features
• Multitenant offers quick replication via PDB
• Developers stay busy ... and so do users!
• Simple to orchestrate more CPU, memory, and storage if needed via
either REST calls or web-based API
• Complex n-dimensional analytics can leverage:
• Database In-Memory features like columnar storage and In-Memory
External Tables
• Analytic Views for rollups among various hierarchies
• Requires limited resources for managing security and continuity
• Leverage new 18c security features (e.g. passwordless schema)
• PDB-level backup and recovery using Secure Oracle Backup
• Guaranteed end-to-end protection from “sniffing” and other hijinks
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Realization: Perfect for SmartDB!
11
• Oracle REST Data Services (ORDS) works well for developers
• Simple to use, deploy, and monitor
• Developers can concentrate on UI, instead of mastering complex SQL
• DBA retains control of shared code base
• Edition-Based Redefinition (EBR) makes it possible for two versions of
production application reside simultaneously in same DB
• Security
• Two-phase authentication for staffers deployed “in the field”
• Code-Based Access Control (CBAC) best practices supports excellent application
security
Building and Populating a Data Model
In Minutes Instead of Hours
• SQL Data Modeler
• DataGenerator
April 2-6, 2017 in Las Vegas, NV USA #C17LV
A Brief Project Task List
Task Method
Build Entity Relationship Diagram (ERD) SQL Developer Data Modeler
Provision Oracle 18c database Oracle Cloud Infrastructure
Create database schema SQL*Plus and SQL Developer
Generate test data DataGenerator utility
Load test data SQL Developer and SQL*Loader
Set up application development environment Application Express (APEX)
Copy sample applications Application Express (APEX)
Build desktop application Application Express (APEX)
Build mobile application Application Express (APEX)
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Data Modeling With SQL Developer Data Modeler
Connect to SQL Developer Data Modeler
1 Import an existing DDL file
2 Choose the file you need and what you’d like to generate
3
Pick the desired database and release. Note: It’s not just for Oracle databases!!
4
A few moments later:
Voila! A full ERD
(either logical or
physical) is ready.
5
Download SQL Developer Data Modeler here to get started.
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Setting Up an APEX Development Environment
Connect to the APEX instance administration page …
1 … and build a new APEX repository for VEVO application development
2 Choose from dozens of sample applications …
3 .. and import those most likely to help your development efforts
4
See the VEVO article series on IOUG SELECT for detailed information on how to configure an initial
APEX development environment and include sample applications for faster learning.
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Generating Test Data Via DataGenerator Utility
Build the database schema and related objects
1
SQL> DROP USER vevo CASCADE;
CREATE USER vevo
IDENTIFIED BY vevo
DEFAULT TABLESPACE sysaux
TEMPORARY TABLESPACE temp
PROFILE DEFAULT
QUOTA UNLIMITED ON sysaux
QUOTA UNLIMITED ON vevo_data
QUOTA UNLIMITED ON vevo_idx
;
GRANT CONNECT, RESOURCE TO vevo;
GRANT CREATE PROCEDURE TO vevo;
GRANT CREATE PUBLIC SYNONYM TO vevo;
. . .
Build DataGenerator
control file for specific
tables and columns to
generate random data
2
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TableDataGenerator xmlns="http://www.domincgiles.com/datagen">
<DatabaseConnectionInformation>
<Username>sh</Username>
<Password>sh</Password>
<ConnectString>//localhost/orcl</ConnectString>
<DriverType>thin</DriverType>
</DatabaseConnectionInformation>
<Table RowCount="275000">
<TableName>T_VOTERS</TableName>
<Columns>
<Column>
<ColumnName>V_UNIQUE_SK</ColumnName>
<DataType>NUMBER</DataType>
<PrimaryKey>true</PrimaryKey>
<NullsAllowed>false</NullsAllowed>
<Size>6</Size>
<PopulateWith>
<DataGenerator>
<NumberGenerator>
<id>DG0</id>
<Start>1</Start>
<End>275000</End>
. . .
Load test data, either via SQL Developer’s built-in functionality …
3 … or using SQL*Loader and the control files that DataGenerator automatically generates
4
$> sqlldr vevo/vevo@PDBVEVO CONTROL=/home/oracle/T_STAFF.ctl skip=1
$> sqlldr vevo/vevo@PDBVEVO CONTROL=/home/oracle//T_CAMPAIGN_ORG.ctl skip=1
$> sqlldr vevo/vevo@PDBVEVO CONTROL=/home/oracle/T_VOTERS.ctl
Finally, add constraints and indexes, then gather optimizer statistics
5
SQL> ALTER TABLE vevo.t_staff
ADD CONSTRAINT staff_pk
PRIMARY KEY (st_sk)
USING INDEX (
CREATE INDEX vevo.staff_pk_idx
ON vevo.t_staff (st_sk)
TABLESPACE vevo_idx
);
. . .
BEGIN
DBMS_STATS.GATHER_SCHEMA_STATS('VEVO');
END;
/
See the VEVO article series on IOUG SELECT and the detailed documentation for DataGenerator
for complete information on how to generate and load these test data.
Napkin, Meet APEX:
Fleshing Out Basic Desktop and Mobile Applications
April 2-6, 2017 in Las Vegas, NV USA #C17LV
VEVO: Deploying A Basic Desktop Application
Campaign organizers needed to see:
• Canvassing progress, including:
• Which canvassers have approached which specific voters
• How well the candidate fares among canvassed voters
• Which canvassers are struggling, and which ones are superlative
• Their own campaign organization staff’s hierarchy, including:
• How well each volunteer is performing within their assigned role
• Different viewpoints at each level in the hierarchy
• Canvassing coverage within geographic areas
• Counts of canvassed vs. uncanvassed voters within ZIP Code
April 2-6, 2017 in Las Vegas, NV USA #C17LV
VEVO Desktop: Campaign Overviews, Drill-Downs, and Details
Reviewing voter canvassing progress
1 A quick summary report of contacted vs.
uncontacted voters in specific locales
2
Viewing the campaign staff hierarchy and
work completed so far
3
Not only does this
provide the hierarchical
structure of the staff …
… as well as
individual
achievements!
… but it also lets a
Canvassing Organizer
see the combined
results of her team …
April 2-6, 2017 in Las Vegas, NV USA #C17LV
MobileVEVO: Deploying A Basic Mobile Application
Canvassers in the field needed:
• A list of voters who haven’t yet been canvassed
• Details about voters while performing canvassing
• A way to record voter sentiment towards candidacy
• A method to mark off voters already contacted
April 2-6, 2017 in Las Vegas, NV USA #C17LV
MobileVEVO: Easy to Build. Easy to Use.
The canvasser self-assigns …
1 .. and gets assigned a random
list of voters to canvass …
2
… and then the canvasser records detailed information about
the voter’s proclivities towards the candidate and campaign.
3
April 2-6, 2017 in Las Vegas, NV USA #C17LV
VEVO: Future Research and Experimentation
• An enhanced desktop application
• Geographic Information Systems (GIS) object and methods required for complex analysis within county, ZIP code,
and precinct boundaries
• Deeper analytics into message penetration trends and voter sentiment ratings
• An improved mobile application
• Routing capabilities for door-to-door canvassing activities
• OAuth2 security to permit MobileVEVO users to sign in with social media logins (e.g. Google)
• Security Enhancements
• Auditing to determine whomever has “touched” sensitive voter information
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Resources: Data Modeling, Data Generation, and APEX
Leverage these great resources to accelerate your data modeling, database design, and APEX application
development repertoire:
• SQL Developer:
http://downloads.oracle.com/SQLDeveloper/
• SQL Developer Data Modeler:
http://downloads.oracle.com/SQLDeveloperDataModeler/
• DataGenerator:
https://dominicgiles.com/datagenerator
• APEX Documentation (18.2):
https://docs.oracle.com/en/database/oracle/application-express/18.2/index.html
• Oracle REST Data Services:
https://www.oracle.com/database/technologies/appdev/rest.html
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Resources: SmartDB
Leverage these great resources to accelerate your understanding of #SmartDB concepts:
• NoPLSQL and Thick Database Approaches video: https://www.youtube.com/watch?v=8jiJDflpw4Y
• Tom Kyte’s EBR Article Series:
Part 1: http://www.oracle.com/technetwork/testcontent/o10asktom-172777.html
Part 2: http://www.oracle.com/technetwork/issue-archive/2010/10-mar/o20asktom-098897.html
Part 3: http://www.oracle.com/technetwork/testcontent/o30asktom-082672.html
• EBR:
Oracle Documentation: https://docs.oracle.com/cloud/latest/db112/ADFNS/adfns_editions.htm#ADFNS020
Bryn Llewellyn’s White Paper: http://www.oracle.com/technetwork/database/features/availability/edition-based-redefinition-1-
133045.pdf

Contenu connexe

Tendances

Research on vector spatial data storage scheme based
Research on vector spatial data storage scheme basedResearch on vector spatial data storage scheme based
Research on vector spatial data storage scheme based
Anant Kumar
 
Insights into Customer Behavior from Clickstream Data by Ronald Nowling
Insights into Customer Behavior from Clickstream Data by Ronald NowlingInsights into Customer Behavior from Clickstream Data by Ronald Nowling
Insights into Customer Behavior from Clickstream Data by Ronald Nowling
Spark Summit
 

Tendances (20)

A Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document StoreA Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document Store
 
NOSQL Overview
NOSQL OverviewNOSQL Overview
NOSQL Overview
 
Research on vector spatial data storage scheme based
Research on vector spatial data storage scheme basedResearch on vector spatial data storage scheme based
Research on vector spatial data storage scheme based
 
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
 
MongoDB .local London 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local London 2019: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local London 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local London 2019: MongoDB Atlas Data Lake Technical Deep Dive
 
Open Source Reliability for Data Lake with Apache Spark by Michael Armbrust
Open Source Reliability for Data Lake with Apache Spark by Michael ArmbrustOpen Source Reliability for Data Lake with Apache Spark by Michael Armbrust
Open Source Reliability for Data Lake with Apache Spark by Michael Armbrust
 
An Autonomous Singularity Approaches: Force Multipliers For Overwhelmed DBAs
An Autonomous Singularity Approaches: Force Multipliers For Overwhelmed DBAsAn Autonomous Singularity Approaches: Force Multipliers For Overwhelmed DBAs
An Autonomous Singularity Approaches: Force Multipliers For Overwhelmed DBAs
 
MongoDB Europe 2016 - The Rise of the Data Lake
MongoDB Europe 2016 - The Rise of the Data LakeMongoDB Europe 2016 - The Rise of the Data Lake
MongoDB Europe 2016 - The Rise of the Data Lake
 
Building Applications with a Graph Database
Building Applications with a Graph DatabaseBuilding Applications with a Graph Database
Building Applications with a Graph Database
 
NoSql Databases
NoSql DatabasesNoSql Databases
NoSql Databases
 
Database basics for new-ish developers -- All Things Open October 18th 2021
Database basics for new-ish developers  -- All Things Open October 18th 2021Database basics for new-ish developers  -- All Things Open October 18th 2021
Database basics for new-ish developers -- All Things Open October 18th 2021
 
Insights into Customer Behavior from Clickstream Data by Ronald Nowling
Insights into Customer Behavior from Clickstream Data by Ronald NowlingInsights into Customer Behavior from Clickstream Data by Ronald Nowling
Insights into Customer Behavior from Clickstream Data by Ronald Nowling
 
Choosing the right NOSQL database
Choosing the right NOSQL databaseChoosing the right NOSQL database
Choosing the right NOSQL database
 
MongoDB Europe 2016 - Using MongoDB to Build a Fast and Scalable Content Repo...
MongoDB Europe 2016 - Using MongoDB to Build a Fast and Scalable Content Repo...MongoDB Europe 2016 - Using MongoDB to Build a Fast and Scalable Content Repo...
MongoDB Europe 2016 - Using MongoDB to Build a Fast and Scalable Content Repo...
 
Introduction to SQL Server Internals: How to Think Like the Engine
Introduction to SQL Server Internals: How to Think Like the EngineIntroduction to SQL Server Internals: How to Think Like the Engine
Introduction to SQL Server Internals: How to Think Like the Engine
 
SQL Query Optimization: Why Is It So Hard to Get Right?
SQL Query Optimization: Why Is It So Hard to Get Right?SQL Query Optimization: Why Is It So Hard to Get Right?
SQL Query Optimization: Why Is It So Hard to Get Right?
 
Apache Druid Vision and Roadmap
Apache Druid Vision and RoadmapApache Druid Vision and Roadmap
Apache Druid Vision and Roadmap
 
Meetup070416 Presentations
Meetup070416 PresentationsMeetup070416 Presentations
Meetup070416 Presentations
 
The delta architecture
The delta architectureThe delta architecture
The delta architecture
 
Spark with Delta Lake
Spark with Delta LakeSpark with Delta Lake
Spark with Delta Lake
 

Similaire à Vote Early, Vote Often: From Napkin to Canvassing Application in a Single Weekend

Oracle and Java together for simplicity and performance
Oracle and Java together for simplicity and performanceOracle and Java together for simplicity and performance
Oracle and Java together for simplicity and performance
Salim Sayed
 

Similaire à Vote Early, Vote Often: From Napkin to Canvassing Application in a Single Weekend (20)

EBS on Oracle Cloud
EBS on Oracle CloudEBS on Oracle Cloud
EBS on Oracle Cloud
 
Oracle EBS database upgrade to 12c
Oracle EBS database upgrade to 12cOracle EBS database upgrade to 12c
Oracle EBS database upgrade to 12c
 
Virtualization & the Cloud for Collaborate 2017
Virtualization & the Cloud for Collaborate 2017Virtualization & the Cloud for Collaborate 2017
Virtualization & the Cloud for Collaborate 2017
 
Data infrastructure architecture for medium size organization: tips for colle...
Data infrastructure architecture for medium size organization: tips for colle...Data infrastructure architecture for medium size organization: tips for colle...
Data infrastructure architecture for medium size organization: tips for colle...
 
Politics Ain’t Beanbag: Using APEX, ML, and GeoCoding In a Modern Election Ca...
Politics Ain’t Beanbag: Using APEX, ML, and GeoCoding In a Modern Election Ca...Politics Ain’t Beanbag: Using APEX, ML, and GeoCoding In a Modern Election Ca...
Politics Ain’t Beanbag: Using APEX, ML, and GeoCoding In a Modern Election Ca...
 
Automating Your Clone in E-Business Suite R12.2
Automating Your Clone in E-Business Suite R12.2Automating Your Clone in E-Business Suite R12.2
Automating Your Clone in E-Business Suite R12.2
 
Hadoop databases for oracle DBAs
Hadoop databases for oracle DBAsHadoop databases for oracle DBAs
Hadoop databases for oracle DBAs
 
DoneDeal - AWS Data Analytics Platform
DoneDeal - AWS Data Analytics PlatformDoneDeal - AWS Data Analytics Platform
DoneDeal - AWS Data Analytics Platform
 
MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017
 
Polyglot Database - Linuxcon North America 2016
Polyglot Database - Linuxcon North America 2016Polyglot Database - Linuxcon North America 2016
Polyglot Database - Linuxcon North America 2016
 
One Database Countless Possibilities for Mission-critical Applications
One Database Countless Possibilities for Mission-critical ApplicationsOne Database Countless Possibilities for Mission-critical Applications
One Database Countless Possibilities for Mission-critical Applications
 
The Great Lakes: How to Approach a Big Data Implementation
The Great Lakes: How to Approach a Big Data ImplementationThe Great Lakes: How to Approach a Big Data Implementation
The Great Lakes: How to Approach a Big Data Implementation
 
Horses for Courses: Database Roundtable
Horses for Courses: Database RoundtableHorses for Courses: Database Roundtable
Horses for Courses: Database Roundtable
 
Erciyes university
Erciyes universityErciyes university
Erciyes university
 
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- Zagreb
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- ZagrebAPEX Alpe Adria Mike Hichwa Keynote April 11th 2019- Zagreb
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- Zagreb
 
Oracle and Java together for simplicity and performance
Oracle and Java together for simplicity and performanceOracle and Java together for simplicity and performance
Oracle and Java together for simplicity and performance
 
SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.
 
D Maeda Bi Portfolio
D Maeda Bi PortfolioD Maeda Bi Portfolio
D Maeda Bi Portfolio
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
 
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
 

Plus de Jim Czuprynski

Plus de Jim Czuprynski (13)

From DBA to DE: Becoming a Data Engineer
From DBA to DE:  Becoming a Data Engineer From DBA to DE:  Becoming a Data Engineer
From DBA to DE: Becoming a Data Engineer
 
Going Native: Leveraging the New JSON Native Datatype in Oracle 21c
Going Native: Leveraging the New JSON Native Datatype in Oracle 21cGoing Native: Leveraging the New JSON Native Datatype in Oracle 21c
Going Native: Leveraging the New JSON Native Datatype in Oracle 21c
 
Access Denied: Real-World Use Cases for APEX and Real Application Security
Access Denied: Real-World Use Cases for APEX and Real Application SecurityAccess Denied: Real-World Use Cases for APEX and Real Application Security
Access Denied: Real-World Use Cases for APEX and Real Application Security
 
Charge Me Up! Using Oracle ML, Analytics, and APEX For Finding Optimal Charge...
Charge Me Up! Using Oracle ML, Analytics, and APEX For Finding Optimal Charge...Charge Me Up! Using Oracle ML, Analytics, and APEX For Finding Optimal Charge...
Charge Me Up! Using Oracle ML, Analytics, and APEX For Finding Optimal Charge...
 
Graphing Grifters: Identify & Display Patterns of Corruption With Oracle Graph
Graphing Grifters: Identify & Display Patterns of Corruption With Oracle GraphGraphing Grifters: Identify & Display Patterns of Corruption With Oracle Graph
Graphing Grifters: Identify & Display Patterns of Corruption With Oracle Graph
 
So an Airline Pilot, a Urologist, and an IT Technologist Walk Into a Bar: Thi...
So an Airline Pilot, a Urologist, and an IT Technologist Walk Into a Bar: Thi...So an Airline Pilot, a Urologist, and an IT Technologist Walk Into a Bar: Thi...
So an Airline Pilot, a Urologist, and an IT Technologist Walk Into a Bar: Thi...
 
What's Your Super-Power? Mine is Machine Learning with Oracle Autonomous DB.
What's Your Super-Power? Mine is Machine Learning with Oracle Autonomous DB.What's Your Super-Power? Mine is Machine Learning with Oracle Autonomous DB.
What's Your Super-Power? Mine is Machine Learning with Oracle Autonomous DB.
 
One Less Thing For DBAs to Worry About: Automatic Indexing
One Less Thing For DBAs to Worry About: Automatic IndexingOne Less Thing For DBAs to Worry About: Automatic Indexing
One Less Thing For DBAs to Worry About: Automatic Indexing
 
Keep Your Code Low, Low, Low, Low, Low: Getting to Digitally Driven With Orac...
Keep Your Code Low, Low, Low, Low, Low: Getting to Digitally Driven With Orac...Keep Your Code Low, Low, Low, Low, Low: Getting to Digitally Driven With Orac...
Keep Your Code Low, Low, Low, Low, Low: Getting to Digitally Driven With Orac...
 
Cluster, Classify, Associate, Regress: Satisfy Your Inner Data Scientist with...
Cluster, Classify, Associate, Regress: Satisfy Your Inner Data Scientist with...Cluster, Classify, Associate, Regress: Satisfy Your Inner Data Scientist with...
Cluster, Classify, Associate, Regress: Satisfy Your Inner Data Scientist with...
 
Where the %$#^ Is Everybody? Geospatial Solutions For Oracle APEX
Where the %$#^ Is Everybody? Geospatial Solutions For Oracle APEXWhere the %$#^ Is Everybody? Geospatial Solutions For Oracle APEX
Where the %$#^ Is Everybody? Geospatial Solutions For Oracle APEX
 
JSON, A Splash of SODA, and a SQL Chaser: Real-World Use Cases for Autonomous...
JSON, A Splash of SODA, and a SQL Chaser: Real-World Use Cases for Autonomous...JSON, A Splash of SODA, and a SQL Chaser: Real-World Use Cases for Autonomous...
JSON, A Splash of SODA, and a SQL Chaser: Real-World Use Cases for Autonomous...
 
Fast and Furious: Handling Edge Computing Data With Oracle 19c Fast Ingest an...
Fast and Furious: Handling Edge Computing Data With Oracle 19c Fast Ingest an...Fast and Furious: Handling Edge Computing Data With Oracle 19c Fast Ingest an...
Fast and Furious: Handling Edge Computing Data With Oracle 19c Fast Ingest an...
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Vote Early, Vote Often: From Napkin to Canvassing Application in a Single Weekend

  • 1. Vote Early, Vote Often: From Napkin to Canvassing Application in a Single Weekend Jim Czuprynski @JimTheWhyGuy
  • 2. April 2-6, 2017 in Las Vegas, NV USA #C17LV My Credentials • 35+ years of database-centric IT experience • Oracle DBA since 2001 • Oracle 9i, 10g, 11g, 12c OCP • Oracle ACE Director • 100+ articles on databasejournal.com and IOUG SELECT • Co-author of 4 Oracle books • Oracle-centric blog (Generally, It Depends) • Regular speaker at Oracle OpenWorld, IOUG COLLABORATE, KSCOPE, and Regional OUGs E-mail me at jczuprynski@zerodefectcomputing.com Follow me on Twitter: @JimTheWhyGuy Connect with me on LinkedIn: Jim Czuprynski
  • 3. April 2-6, 2017 in Las Vegas, NV USA #C17LV Our Agenda •Vote Early, Vote Often: Finding the Grain Among the Chaff •Leveraging Oracle Database 18c for Security, Scalability, and Flexibility •Building a Data Model In Minutes Instead of Hours •Napkin, Meet APEX: Fleshing Out Application Basic Components •Deploying a Desktop Application •Deploying a Mobile Canvassing Application •Future Research and Experimentation
  • 4. Vote Early, Vote Often: Finding the Grain Among the Chaff
  • 5. April 2-6, 2017 in Las Vegas, NV USA #C17LV Use Case: Managing Canvassing in US Congressional Campaign 5 • Understand where potential voters live • Gerrymandered district stretches several dozen miles across five different counties and 56 municipalities • Incumbent opponent won district handily in last five elections • Figure out how to best deploy a growing multitude of volunteers • Volunteers range in age from just able to vote to JFK Democrats • Everyone is not suited to canvassing! • Capture results of phone banking, text banking, and canvassing • Record successful voter commitment to candidate • Identify possible new volunteers and contributors • Determine which messages resonate (retain!) … as well as which ones fall flat (discard!)
  • 6. April 2-6, 2017 in Las Vegas, NV USA #C17LV Timelines, Concerns and Restrictions 6 •Extremely short development windows • Primary ended in April 2018, but canvassing extends only six months • Should candidate lose, the application can be discarded shortly after November 2018 election ends • Data retention concerns • Data analysis will extend briefly should candidate lose • Data will be valuable for 2020 race should candidate win •Security concerns • One of the hottest congressional races in 2018 • Opponent is incumbent with heavy outside funding • Opposition is experienced at “going negative”
  • 7. April 2-6, 2017 in Las Vegas, NV USA #C17LV Got a Napkin? Then Let’s Build This Thing! My first attempts at data modeling and requirements gathering … … including minor issues, like what computing environment and security concerns … … and defining the first draft of the data entry UI requirements What could possibly go wrong?
  • 8. Leveraging Oracle Database 18c for Security, Scalability, and Flexibility • Perfect for the Cloud • Perfect for Oracle 18c • Perfect for SmartDB
  • 9. April 2-6, 2017 in Las Vegas, NV USA #C17LV Realization: Perfect for the Cloud! 9 • Relatively simple data model and small data volume (<500M rows) • Short development time frames demand quick orchestration for compute and storage • Complex n-dimensional analytics may be required • Past voting record vs. strength of party affiliation vs. impact of current government initiatives vs. … • Determine “flippability” of voter before canvassing starts • Security is a must … so encryption is crucial! • Most voter data is publicly available … but contributor and volunteer information as well as canvassing results are proprietary • Removes concerns about on-premises development and data storage • Eliminates risk of penetration by rival campaign
  • 10. April 2-6, 2017 in Las Vegas, NV USA #C17LV Realization: Perfect for Oracle 18c! 10 • Tight integration with Oracle Public Cloud features • Multitenant offers quick replication via PDB • Developers stay busy ... and so do users! • Simple to orchestrate more CPU, memory, and storage if needed via either REST calls or web-based API • Complex n-dimensional analytics can leverage: • Database In-Memory features like columnar storage and In-Memory External Tables • Analytic Views for rollups among various hierarchies • Requires limited resources for managing security and continuity • Leverage new 18c security features (e.g. passwordless schema) • PDB-level backup and recovery using Secure Oracle Backup • Guaranteed end-to-end protection from “sniffing” and other hijinks
  • 11. April 2-6, 2017 in Las Vegas, NV USA #C17LV Realization: Perfect for SmartDB! 11 • Oracle REST Data Services (ORDS) works well for developers • Simple to use, deploy, and monitor • Developers can concentrate on UI, instead of mastering complex SQL • DBA retains control of shared code base • Edition-Based Redefinition (EBR) makes it possible for two versions of production application reside simultaneously in same DB • Security • Two-phase authentication for staffers deployed “in the field” • Code-Based Access Control (CBAC) best practices supports excellent application security
  • 12. Building and Populating a Data Model In Minutes Instead of Hours • SQL Data Modeler • DataGenerator
  • 13. April 2-6, 2017 in Las Vegas, NV USA #C17LV A Brief Project Task List Task Method Build Entity Relationship Diagram (ERD) SQL Developer Data Modeler Provision Oracle 18c database Oracle Cloud Infrastructure Create database schema SQL*Plus and SQL Developer Generate test data DataGenerator utility Load test data SQL Developer and SQL*Loader Set up application development environment Application Express (APEX) Copy sample applications Application Express (APEX) Build desktop application Application Express (APEX) Build mobile application Application Express (APEX)
  • 14. April 2-6, 2017 in Las Vegas, NV USA #C17LV Data Modeling With SQL Developer Data Modeler Connect to SQL Developer Data Modeler 1 Import an existing DDL file 2 Choose the file you need and what you’d like to generate 3 Pick the desired database and release. Note: It’s not just for Oracle databases!! 4 A few moments later: Voila! A full ERD (either logical or physical) is ready. 5 Download SQL Developer Data Modeler here to get started.
  • 15. April 2-6, 2017 in Las Vegas, NV USA #C17LV Setting Up an APEX Development Environment Connect to the APEX instance administration page … 1 … and build a new APEX repository for VEVO application development 2 Choose from dozens of sample applications … 3 .. and import those most likely to help your development efforts 4 See the VEVO article series on IOUG SELECT for detailed information on how to configure an initial APEX development environment and include sample applications for faster learning.
  • 16. April 2-6, 2017 in Las Vegas, NV USA #C17LV Generating Test Data Via DataGenerator Utility Build the database schema and related objects 1 SQL> DROP USER vevo CASCADE; CREATE USER vevo IDENTIFIED BY vevo DEFAULT TABLESPACE sysaux TEMPORARY TABLESPACE temp PROFILE DEFAULT QUOTA UNLIMITED ON sysaux QUOTA UNLIMITED ON vevo_data QUOTA UNLIMITED ON vevo_idx ; GRANT CONNECT, RESOURCE TO vevo; GRANT CREATE PROCEDURE TO vevo; GRANT CREATE PUBLIC SYNONYM TO vevo; . . . Build DataGenerator control file for specific tables and columns to generate random data 2 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <TableDataGenerator xmlns="http://www.domincgiles.com/datagen"> <DatabaseConnectionInformation> <Username>sh</Username> <Password>sh</Password> <ConnectString>//localhost/orcl</ConnectString> <DriverType>thin</DriverType> </DatabaseConnectionInformation> <Table RowCount="275000"> <TableName>T_VOTERS</TableName> <Columns> <Column> <ColumnName>V_UNIQUE_SK</ColumnName> <DataType>NUMBER</DataType> <PrimaryKey>true</PrimaryKey> <NullsAllowed>false</NullsAllowed> <Size>6</Size> <PopulateWith> <DataGenerator> <NumberGenerator> <id>DG0</id> <Start>1</Start> <End>275000</End> . . . Load test data, either via SQL Developer’s built-in functionality … 3 … or using SQL*Loader and the control files that DataGenerator automatically generates 4 $> sqlldr vevo/vevo@PDBVEVO CONTROL=/home/oracle/T_STAFF.ctl skip=1 $> sqlldr vevo/vevo@PDBVEVO CONTROL=/home/oracle//T_CAMPAIGN_ORG.ctl skip=1 $> sqlldr vevo/vevo@PDBVEVO CONTROL=/home/oracle/T_VOTERS.ctl Finally, add constraints and indexes, then gather optimizer statistics 5 SQL> ALTER TABLE vevo.t_staff ADD CONSTRAINT staff_pk PRIMARY KEY (st_sk) USING INDEX ( CREATE INDEX vevo.staff_pk_idx ON vevo.t_staff (st_sk) TABLESPACE vevo_idx ); . . . BEGIN DBMS_STATS.GATHER_SCHEMA_STATS('VEVO'); END; / See the VEVO article series on IOUG SELECT and the detailed documentation for DataGenerator for complete information on how to generate and load these test data.
  • 17. Napkin, Meet APEX: Fleshing Out Basic Desktop and Mobile Applications
  • 18. April 2-6, 2017 in Las Vegas, NV USA #C17LV VEVO: Deploying A Basic Desktop Application Campaign organizers needed to see: • Canvassing progress, including: • Which canvassers have approached which specific voters • How well the candidate fares among canvassed voters • Which canvassers are struggling, and which ones are superlative • Their own campaign organization staff’s hierarchy, including: • How well each volunteer is performing within their assigned role • Different viewpoints at each level in the hierarchy • Canvassing coverage within geographic areas • Counts of canvassed vs. uncanvassed voters within ZIP Code
  • 19. April 2-6, 2017 in Las Vegas, NV USA #C17LV VEVO Desktop: Campaign Overviews, Drill-Downs, and Details Reviewing voter canvassing progress 1 A quick summary report of contacted vs. uncontacted voters in specific locales 2 Viewing the campaign staff hierarchy and work completed so far 3 Not only does this provide the hierarchical structure of the staff … … as well as individual achievements! … but it also lets a Canvassing Organizer see the combined results of her team …
  • 20. April 2-6, 2017 in Las Vegas, NV USA #C17LV MobileVEVO: Deploying A Basic Mobile Application Canvassers in the field needed: • A list of voters who haven’t yet been canvassed • Details about voters while performing canvassing • A way to record voter sentiment towards candidacy • A method to mark off voters already contacted
  • 21. April 2-6, 2017 in Las Vegas, NV USA #C17LV MobileVEVO: Easy to Build. Easy to Use. The canvasser self-assigns … 1 .. and gets assigned a random list of voters to canvass … 2 … and then the canvasser records detailed information about the voter’s proclivities towards the candidate and campaign. 3
  • 22. April 2-6, 2017 in Las Vegas, NV USA #C17LV VEVO: Future Research and Experimentation • An enhanced desktop application • Geographic Information Systems (GIS) object and methods required for complex analysis within county, ZIP code, and precinct boundaries • Deeper analytics into message penetration trends and voter sentiment ratings • An improved mobile application • Routing capabilities for door-to-door canvassing activities • OAuth2 security to permit MobileVEVO users to sign in with social media logins (e.g. Google) • Security Enhancements • Auditing to determine whomever has “touched” sensitive voter information
  • 23. April 2-6, 2017 in Las Vegas, NV USA #C17LV Resources: Data Modeling, Data Generation, and APEX Leverage these great resources to accelerate your data modeling, database design, and APEX application development repertoire: • SQL Developer: http://downloads.oracle.com/SQLDeveloper/ • SQL Developer Data Modeler: http://downloads.oracle.com/SQLDeveloperDataModeler/ • DataGenerator: https://dominicgiles.com/datagenerator • APEX Documentation (18.2): https://docs.oracle.com/en/database/oracle/application-express/18.2/index.html • Oracle REST Data Services: https://www.oracle.com/database/technologies/appdev/rest.html
  • 24. April 2-6, 2017 in Las Vegas, NV USA #C17LV Resources: SmartDB Leverage these great resources to accelerate your understanding of #SmartDB concepts: • NoPLSQL and Thick Database Approaches video: https://www.youtube.com/watch?v=8jiJDflpw4Y • Tom Kyte’s EBR Article Series: Part 1: http://www.oracle.com/technetwork/testcontent/o10asktom-172777.html Part 2: http://www.oracle.com/technetwork/issue-archive/2010/10-mar/o20asktom-098897.html Part 3: http://www.oracle.com/technetwork/testcontent/o30asktom-082672.html • EBR: Oracle Documentation: https://docs.oracle.com/cloud/latest/db112/ADFNS/adfns_editions.htm#ADFNS020 Bryn Llewellyn’s White Paper: http://www.oracle.com/technetwork/database/features/availability/edition-based-redefinition-1- 133045.pdf