SQL Server 2016 novelties
-
Upload
msdevmtl -
Category
Technology
-
view
1.608 -
download
0
Transcript of SQL Server 2016 novelties
SQL Server 2016 CTP3New innovations
Operational analytics: in-memory tables
Support for index maintenance
Operation SQL Server 2014 SQL Server 2016
Removing deleted rows Requires index REBUILD Index REORGANIZERemove deleted rows from single compressed RG
Merge one or more compressed RGs with deleted rows
Done ONLINE
Smaller RG size resulting from:Smaller BATCHSIZEMemory pressure
Index build residual
Index REBUILD Index REORGANIZE
Ordering rows Create clustered index
Create columnstore index by dropping clustered index
No changes
Query Row group granularity
No support for RCSI or SI
Recommendation: use read uncommitted
Support of SI and RCSI (non-blocking)
Insert Lock at row level (trickle insert)
Row group level for set of rows
No changes
Delete Lock at row group level Row-level lock in conjunction with NCI
Update Lock at row group level
Implemented as Delete/Insert
Row-level lock in conjunction with NCI
AlwaysOn Failover Clustering (FCI) Fully supported Fully supported
AlwaysON Availability Groups Fully supported except readable secondary Fully supported with readable secondary
Index create/rebuild Offline Offline
Performance
Summary: operational analytics
Capability
Ability to run analytics queries concurrently with
operational workloads using the same schema
Data Warehouse queries can be run on In-Memory
OLTP workloads with no application changes
Benefits
Minimal impact on OLTP workloads
Best performance and scalability available
Offloading analytics workload to readable
secondary
.
IIS Server
BI analysts
Performance
In-Memory OLTP enhancements
| ADD {
<column_definition>| <table_constraint>| <table_index>
} [ ,...n ]
| DROP {
[ CONSTRAINT ] {
constraint_name} [ ,...n ]| COLUMN {
column_name} [ ,...n ]| INDEX {
index_name} [ ,...n ]
} [ ,...n ]
| ALTER INDEX index_name{
REBUILD (WITH <rebuild_index_option>) }
}
The ALTER TABLE syntax is
used for making changes to the
table schema, as well as for
adding, deleting, and rebuilding
indexes
Indexes are considered part of
the table definition
Key advantage is the ability to
change the BUCKET_COUNT with
an ALTER INDEX statement
Altering memory-optimized tables
Performance
CREATE PROCEDURE [dbo].[usp_1]WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNERAS BEGIN ATOMIC WITH(TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english')SELECT c1, c2 from dbo.T1ENDGO
ALTER PROCEDURE [dbo].[usp_1]WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNERAS BEGIN ATOMIC WITH(TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english')SELECT c1 from dbo.T1ENDGO
You can now perform ALTERoperations on natively compiled
stored procedures using the
ALTER PROCEDURE statement
Use sp_recompile to
recompile stored procedures on
the next execution
Altering natively compiled stored procedures
Performance
New Transaction Performance Analysis Overview report
New report replaces the
need to use the
Management Data
Warehouse to analyze
which tables and stored
procedures are candidates
for in-memory
optimization
Performance
In SQL Server 2016, the
storage for memory-
optimized tables will be
encrypted as part of enabling
TDE on the database
Simply follow the same steps
as you would for a disk-based
database
Support for Transparent Data Encryption (TDE)
Windows Operating SystemLevel Data Protection
SQL ServerInstance Level
User DatabaseLevel Database Encryption Key
Service Master Key
DPAPI encrypts the Service Master Key
MasterDatabase Level Database Encryption Key
Service Master Key Encrypts the Database master Key for the master Database
Database Master Key of the master Database creates a certificate in the master database
The certificate encrypts the database Encryption Key in the user database
The entire user database is secured by the Datbase Encryption Key (DEK) of the user database by using transparent database encryption
Created at a time of SQL Server setup
Statement:
CREAT MASTER KEY…
Statement:
CREATE CERTIFICATE…
Statement:
CREATE DATABASE ENCRYPTION KEY…
Statement:
ALTER DATABSE… SET ENCRYPTION
Performance
Summary: In-Memory OLTP enhancements
Capability
ALTER support for memory-optimized tables
Greater Transact-SQL coverage
Benefits
Improved scaling: In-Memory OLTP engine has been enhanced to scale linearly on servers up to 4 sockets
Tooling improvements in Management Studio
MARS (multiple active result sets) support
TDE (Transparent Data Encryption)-enabled: all on-disk data files are now encrypted once TDE is enabled
Performance
Query Store
Your flight data recorder for your database
Problems with query performance
Fixing query plan choice regressions is difficult• Query plan cache is not well-suited for performance troubleshooting
Long time to detect the issue (TTD)• Which query is slow? Why is it slow?
• What was the previous plan?
Long time to mitigate (TTM)• Can I modify the query?
• How to use plan guide?
Performance
Temporaryperf issues
WebsiteIs down
DBupgraded
Database is not
working
Impossible to predict / root cause
Regression caused by
new bits
Durability latency controlled by DB option
DATA_FLUSH_INTERNAL_SECONDS
Compile
Execute
Plan store
Runtime stats
Query
Store
schema
Query data store
Collects query texts (plus all relevant properties)
Stores all plan choices and performance metrics
Works across restarts / upgrades / recompiles
Dramatically lowers the bar for performance
troubleshooting
New Views
Intuitive and easy plan forcing
Performance
The Query Store feature provides DBAs with insight on query plan choice and performance
Monitoring performance by using the Query Store
Performance
Summary: Query Store
Capability
Query Store helps customers quickly find and fix query performance issues
Query Store is a ‘flight data recorder’ for database workloads
Benefits
Greatly simplifies query performance troubleshooting
Provides performance stability across SQL Server upgrades
Allows deeper insight into workload performance
Performance
JavaScript Object Notation (JSON)
JSON in SQL Server
[
{
"Number":"SO43659",
"Date":"2011-05-31T00:00:00"
"AccountNumber":"AW29825",
"Price":59.99,
"Quantity":1
},
{
"Number":"SO43661",
"Date":"2011-06-01T00:00:00“
"AccountNumber":"AW73565“,
"Price":24.99,
"Quantity":3
}
]
SO43659 2011-05-31T00:00:00 MSFT 59.99 1
SO43661 2011-06-01T00:00:00 Nokia 24.99 3
Table 2 JSON
Formats result set
as JSON text.
JSON 2 table
Migrates JSON
text to table
Built-in functions
ISJSON
JSON_VALUE
JSON_MODIFY
Performance
Main facts
No custom type or indexStore as NVARCHAR
Does JSON work with X?Does NVARCHAR work with X?
Yes, with in-memory, row-level security, stretch, compression, encryption, and more
Yes, with all client drivers
Different from DocumentDB
Table to JSON
JSON output:
SO43659 2011-05-31T00:00:00 MSFT 59.99 1
SO43661 2011-06-01T00:00:00 Nokia 24.99 3
SELECT Number AS [Order.Number], Date AS [Order.Date],
Customer AS Account,
Price AS 'Item.UnitPrice', Quantity AS 'Item.Qty'
FROM SalesOrder
FOR JSON PATH
Performance
CREATE TABLE SalesOrderRecord (Id int PRIMARY KEY IDENTITY,OrderNumber NVARCHAR(25) NOT NULL,OrderDate DATETIME NOT NULL,
JSalesOrderDetails NVARCHAR(4000)CONSTRAINT SalesOrderDetails_IS_JSON
CHECK ( ISJSON(JSalesOrderDetails)>0 ),
Quantity ASCAST(JSON_VALUE(JSalesOrderDetails, '$.Order.Qty') AS int)
)GO
CREATE INDEX idxJson ON SalesOrderRecord(Quantity)INCLUDE (Price);
Built-in functions
JSON is plain text
ISJSON guarantees
consistency
Optimize further with
computed column and
INDEX
Summary: JSON
Capability
Greatly enhances developer productivity
Benefits
Added native JSON support in the core database engine supports schema-free data. Tackle more diverse
data types right in SQL Server
Support in DocumentDB
Performance
Temporal
Query back in time
No change in programming model New Insights
INSERT / BULK INSERT
UPDATE
DELETE
MERGE
DML SELECT * FROM temporal
Querying
How to start with temporal
CREATE temporalTABLE PERIOD FOR SYSTEM_TIME…
ALTER regular_table TABLE ADD PERIOD…
DDL
FOR SYSTEM_TIME
AS OF
FROM..TO
BETWEEN..AND
CONTAINED IN
Temporal Querying
ANSI 2011 compliant
Performance
Provides correct information
about stored facts at any
point in time, or between
two points in time
There are two orthogonal sets of scenarios with regards to temporal data:
System (transaction)-time
Application-time
SELECT * FROM Person.BusinessEntityContact
FOR SYSTEM_TIME BETWEEN @Start AND @End
WHERE ContactTypeID = 17
Performance
Temporal database support: BETWEEN
Summary: temporal
Capability
Greatly enhances developer productivity
Benefits
Added temporal database support so you can record, audit, and query data changes over time
Performance Security Availability Scalability
Operational analyticsInsights on operational data; Works with in-memory OLTP and disk-based OLTP
In-memory OLTP
enhancements
Greater T-SQL surface area, terabytes of memory supported, and greater number of parallel CPUs
Query data store Monitor and optimize query plans
Native JSONExpanded support for JSON data
Temporal database
supportQuery data as points in time
Always encryptedSensitive data remains encrypted at all times with ability to query
Row-level securityApply fine-grained access control to table rows
Dynamic data maskingReal-time obfuscation of data to prevent unauthorized access
Other enhancementsAudit success/failure of database operations
TDE support for storage of In-Memory OLTP tables
Enhanced auditing for OLTP with ability to track history of record changes
Enhanced AlwaysOnThree synchronous replicas for auto failover across domains
Round robin load balancing of replicas
Automatic failover based on database health
DTC for transactional integrity across database instances with AlwaysOn
Support for SSIS with AlwaysOn
Enhanced database
caching Cache data with automatic, multiple TempDB files per instance in multi-core environments
Mission-critical performance
Always Encrypted
Prevents data
disclosure
Client-side encryption of
sensitive data using keys that
are never given to the
database system
Queries on
encrypted data
Support for equality
comparison, including join,
group by, and distinct
operators
Application
transparency
Minimal application changes
via server and client library
enhancements
Allows customers to securely store sensitive data outside of their trust boundary.
Data remains protected from high-privileged, yet unauthorized users.
The need for Always Encrypted
Security
How it worksHelp protect data at rest and in motion, on-premises and in the cloud
SQL Server or SQL Database
ADO .NET
Name
Wayne Jefferson
Name
0x19ca706fbd9a
Result SetResult Set
Client
Name SSN Country
0x19ca706fbd9a 0x7ff654ae6d USA
dbo.Customers
ciphertext
"SELECT Name FROM Customers WHERE SSN = @SSN",0x7ff654ae6d
ciphertext
"SELECT Name FROM Customers WHERE SSN = @SSN","111-22-3333"
Encrypted sensitive data and corresponding keys are never seen in plaintext in SQL Server
trust boundary
Security
Select columns to
be encrypted
Analyze schema
and application
queries to detect
conflicts (build
time)Set up the keys:
master & CEK
Static schema
analysis tool
(SSDT only)
UI for selecting columns (no
automated data classification)
Key setup tool to automate
selecting CMK, generating and
encrypting CEK, and uploading
key metadata to the database
Setup (SSMS or SSDT)User experience: SSMS or SSDT (Visual Studio)
Security
Data remains encrypted during query
Summary: Always EncryptedProtect data at rest and in motion, on-premises and in the cloud
Capability
ADO.Net client library provides
transparent client-side encryption, while
SQL Server executes T-SQL queries on
encrypted data
Benefits
Apps TCE-enabled
ADO .NET library
SQL ServerEncrypted
query
Columnarkey
No app changes
Master key
Security
Row-level security
SQL Server 2016SQL Database
Fine-grained access control over specific rows in a database
table
Help prevent unauthorized access when multiple users
share the same tables, or to implement connection filtering
in multitenant applications
Administer via SQL Server Management Studio or SQL
Server Data Tools
Enforcement logic inside the database and schema is
bound to the table
Protect data privacy by ensuring
the right access across rows
SQL Database
Customer 1
Customer 2
Customer 3
The need for row-level security
Security
Fine-grained
access control
Keeping multitenant
databases secure by limiting
access by other users who
share the same tables
Application
transparency
RLS works transparently at
query time, no app changes
needed
Compatible with RLS in other
leading products
Centralized
security logic
Enforcement logic resides
inside database and is
schema-bound to the table it
protects providing greater
security. Reduced application
maintenance and complexity
Store data intended for many consumers in a single database/table while at the same time
restricting row-level read and write access based on users’ execution context.
Benefits of row-level security (RLS)
Security
Security
CREATE FUNCTION dbo.fn_securitypredicate(@wing int)
RETURNS TABLE WITH SCHEMABINDING AS
return SELECT 1 as [fn_securitypredicate_result]
FROM
StaffDuties d INNER JOIN Employees e
ON (d.EmpId = e.EmpId)
WHERE e.UserSID = SUSER_SID()
AND @wing = d.Wing;
CREATE SECURITY POLICY dbo.SecPol
ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing)
ON Patients
WITH (STATE = ON)
Fine-grained access control over
rows in a table based on one or
more pre-defined filtering
criteria, such as user’s role or
clearance level in organization
Concepts:
Predicate function
Security policy
Example
Two
App user (e.g., nurse) selects from Patients tableThree
Security Policy transparently rewrites query to apply filter predicate
Database Policy Manager
CREATE FUNCTION dbo.fn_securitypredicate(@wing int)
RETURNS TABLE WITH SCHEMABINDING AS
return SELECT 1 as [fn_securitypredicate_result] FROM
StaffDuties d INNER JOIN Employees e
ON (d.EmpId = e.EmpId)
WHERE e.UserSID = SUSER_SID() AND @wing = d.Wing;
CREATE SECURITY POLICY dbo.SecPol
ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing) ON Patients
WITH (STATE = ON)
Filter
Predicate:
INNER
JOIN…
Security
Policy
Application
Patients
Nurse
SELECT * FROM Patients
SELECT * FROM Patients
SEMIJOIN APPLY dbo.fn_securitypredicate(patients.Wing);
SELECT Patients.* FROM Patients,
StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId)
WHERE e.UserSID = SUSER_SID() AND Patients.wing = d.Wing;
RLS in three steps
Security
Summary: RLS
Capability
Row-level security provides fine-grained access control over rows in a table based on
conditions you set up
Benefits
Store data for many users in the same databases and tables while limiting access by other users
who share the same tables
Security
Dynamic data masking
SQL Server 2016SQL Database
Configuration made easy in the new Azure portal
Policy-driven at the table and column level, for a
defined set of users
Data masking applied in real-time to query
results based on policy
Multiple masking functions available (e.g. full,
partial) for various sensitive data categories
(credit card numbers, SSN, etc.)
SQL Database
SQL Server 2016
Table.CreditCardNo
4465-6571-7868-5796
4468-7746-3848-1978
4484-5434-6858-6550
Real-time data masking;
partial masking
Dynamic data masking
Prevent the abuse of sensitive
data by hiding it from users
Security
Regulatory
compliance
Sensitive data
protection
Agility and
transparency
Data is masked on the fly, with
underlying data in the database
remaining intact. Transparent to
the application and applied
according to user privilege
Limit access to sensitive data by defining policies to obfuscate specific database fields, without
affecting the integrity of the database.
Benefits of dynamic data masking
Security
How it works
On-the-fly obfuscation of data in query results
Policy-driven on the table and column
Multiple masking functions available for various sensitive data categories
Flexibility to define a set of privileged logins for un-masked data access
By default, database owner is unmasked
See: https://msdn.microsoft.com/en-us/library/mt130841.aspx
Azure DB
Table.CreditCardNo
4465-6571-7868-5796
4468-7746-3848-1978
4484-5434-6858-6550
On-the-fly masking of
sensitive data in query resultsDynamic
masking
Limit sensitive data exposure by
obfuscating it to non-privileged users
Security
Dynamic data masking walkthrough
ALTER TABLE [Employee] ALTER COLUMN [SocialSecurityNumber]ADD MASKED WITH (FUNCTION = ‘SSN()’)
ALTER TABLE [Employee] ALTER COLUMN [Email]ADD MASKED WITH (FUNCTION = ‘EMAIL()’)
ALTER TABLE [Employee] ALTER COLUMN [Salary] ADD MASKED WITH (FUNCTION = ‘RANDOM(1,20000)’)
GRANT UNMASK to admin1
1) Security officer defines dynamic data masking policy in T-SQL over sensitive data in Employee table2) Application user selects from Employee table3) Dynamic data masking policy obfuscates the sensitive data in the query results
SELECT [Name],
[SocialSecurityNumber],
[Email],
[Salary]
FROM [Employee]
Security
Summary: dynamic data masking
CapabilityProtects against unauthorized disclosure of sensitive data in the application
BenefitsEnables you to set up policies at the table and column level that provide multiple masking functions
Allows certain privileged logins to see the data unmasked
Security
Enhanced AlwaysOn
More than two automatic failover targets
Increased solution scale
Increased resiliency
Now any sync secondary can be a target for automatic failover
Total of three automatic failover targets
Availability
Log transport performance
New hardware pushes boundaries
Very high transaction rates have caused problems when coupled with
fast hardware (i.e. PCIe flash storage)
The entire pipeline has been reworked end to end
Result is much lower CPU consumption, and much better performance
Performance bar: comparison to the performance of a standalone server
Availability
Distributed Transaction Coordinator (DTC) support
Currently, any distributed transactions touching a database in an availability group are not allowed
Many customers run unsupported, at risk to their data and reputation
Many enterprise applications need cross-database transactions
Fully supported in SQL Server 2016Joint effort with Windows
Requires specific patch in order to work cleanly
Other requirements:
• Availability groups must be running on Windows Server 2016 Technical Preview 2
• Availability groups must be created with the CREATE AVAILABILITY GROUP command and the WITH DTC_SUPPORT = PER_DB clause. You cannot currently alter an existing availability group
• Learn more: https://msdn.microsoft.com/en-us/library/ms366279.aspx
Availability
Database-level failover trigger
Currently, Availability Groups only monitor the health of the instanceA database can be offline or corrupt, but will not trigger a failover as long as the instance itself is healthy
SQL Server 2016: option to also monitor the health of the databases in the Availability Group
Databases going offline trigger a change in the health status
Availability
Summary: enhanced AlwaysOn
Capability
For scalability, SQL Server 2016 adds in load balancing of readable secondaries
Increases the number of auto-failover targets from two to three
Benefits
Log transport performance has been improved
Support for Distributed Transaction Coordinator (DTC) — enrolled transactions for Availability Group
databases
Database-level health monitoring
gMSA: domain-level accounts that are automatically managed
Availability
Performance Security Availability Scalability
Operational analyticsInsights on operational data; Works with in-memory OLTP and disk-based OLTP
In-memory OLTP
enhancements
Greater T-SQL surface area, terabytes of memory supported, and greater number of parallel CPUs
Query data store Monitor and optimize query plans
Native JSONExpanded support for JSON data
Temporal database
supportquery data as points in time
Always encryptedSensitive data remains encrypted at all times with ability to query
Row-level securityApply fine-grained access control to table rows
Dynamic Data MaskingReal-time obfuscation of data to prevent unauthorized access
Other enhancementsAudit success/failure of database operations
TDE support for storage of in-memory OLTP tables
Enhanced auditing for OLTP with ability to track history of record changes
Enhanced AlwaysOnThree synchronous replicas for auto failover across domains
Round robin load balancing of replicas
Automatic failover based on database health
DTC for transactional integrity across database instances with AlwaysOn
Support for SSIS with AlwaysOn
Enhanced database
caching Cache data with automatic, multiple TempDB files per instance in multicore environments
Mission-critical performance
Scalability improvements
Access any data Scale and manage Powerful insights Advanced analytics
PolyBase
Insights from data across SQL Server and Hadoop with the simplicity of T-SQL
Enhanced SSISDesigner support for previous SSIS versions
Enterprise-grade
Analysis Services Enhanced performance and scalability for Analysis Services
Single SSDT in Visual Studio
2015 (CTP3)Build richer analytics solutions as part of your development projects in Visual Studio
Enhanced MDS Excel add-in 15x faster; moregranular security roles; archival options for transaction logs; and reuse entities across models
Mobile BIBusiness insights for your on-premises data through rich visualization on mobile devices with native apps for Windows, iOS, and Android
Enhanced Reporting
ServicesNew modern reports with rich visualizations
R integration (CTP3)Bringing predictive analytic capabilities to your relational database
Expand your “R” script library with Microsoft Azure Marketplace
Deeper insights across data
PolyBase for SQL Server 2016
PolyBase and queries
Provides a scalable, T-SQL-compatible query processing framework for combining data from both universes
Access any data
PolyBase View in SQL Server 2016
PolyBase View
• Execute T-SQL queries against relational data in SQL Server and ‘semi-structured’ data in HDFS and/or Azure
• Leverage existing T-SQL skills and BI tools to gain insights from different data stores
• Expand the reach of SQL Server to Hadoop(HDFS)
Access any data
SSIS improvements
SSIS improvements for SQL Server 2016
AlwaysOn support
Incremental deployment of
packages
Improved project upgrade support
CTP3 enhancements
Error column name support
Custom log level
Package template
OData V4 support
Designer improvements
One designer multi-version support
AlwaysOn Availability Groups
Secondary for SSISDB
New York(Primary)
New Jersey(Secondary)
SSIS
DB
SSIS
DB
SQL Server 2012SSIS Project XSQL Server 2016SSIS Project X
Improved project upgrade
Access any data
Package template (CTP3)Reuse code as templates
Developer can save part of the package as a
template and reuse it in the design of other
packages
Access any data
Capability
DBA can set up AlwaysOn Availability Groups for the SSIS catalog
Deploy one or more packages to an existing or new project without deploying the whole project
Benefits
Customize your own log levels for more flexibility
See the error column name in both the data viewer and editor
Create reusable code by making a package template
OData Source support for V4 Protocol
Summary: SSIS improvement
Access any data
Enterprise-grade Analysis Services
Analysis Services themes for SQL Server 2016Improved productivity and performance
Increasedproductivity
Scale and manage
Scale your tabular
models with support
for high-end servers
More memory
More cores
Summary: enterprise-grade Analysis ServicesDeliver high performance and scalability for your BI solutions
High-end server hardware
Capability
Tabular and MOLAP modeling enhancements
High-performance Direct Query for Tabular
Additional tools for administrators
Performance and data source updates
Benefits
Scale and manage
Unified Visual Studio Data Tools (CTP3)
Capability
SSDT-BI and SSMS for Visual Studio 2015
Rich data modeling enhancements
New DAX analytical functions
MDX Query Plan tool for performance optimizations and troubleshooting
Benefits{JSON}
Rich BI application platformDevelop and deliver BI solutions faster and at lower costs
Scale and manage
Master Data Services improvements
Areas of improvement
Scale and manage
Performance and scaleOverall performance and scale
improvements
Target of 15x performance
improvement for Excel add-in
Increased performance for bulk
entity-based staging operations
Security improvementsNew security roles for more
granular permissions around read,
write, and delete
Multiple system administrators
Manageability and modelingArchive transaction logs
Reuse of entities across models
Support for compound keys
Name and Code attributes can be
renamed
Summary: MDS improvements
Scale and manage
Enhanced Reporting Services
Modern Report Builder look and feel
Visual Studio 2015 support
Modern reports
Powerful insights
Consume anywhere, anytime
Find, view, and manage through modern web
portal
Support for modern HTML5 browsers
Printing without plug-ins
PowerPoint rendering and export
Powerful insights
Summary: Enhanced Reporting Services
Modern design tools
Support for latest enterprise data source
Expanded browser support
Secure access
Power BI integration
Report consumption from modern browsers
Improved parameters
Modern themes
New chart types
Powerful insights
R integration
R Integration in SQL Server will be Revolutionary
Capability
Extensible in-database analytics, integrated with
R, exposed through T-SQL
Centralize enterprise library for analytic models
Benefits
SQL Server
Analytical engines
Full R integration
Fully extensible
Data Management Layer
Relational data
T-SQL interface
Stream data in-memory
Analytics library
Share and collaborate
Manage and deploy
R +
Data Scientists
Business
Analysts
Publish algorithms, interact
directly with data
Analysis through TSQL, tools,
and vetted algorithms
DBAsManage storage and
analytics together
Summary: R integration and advanced analytics
Advanced analytics
Stretch Database
Ever-growing data, ever-shrinking IT
What to do?
Expand server and storage
Move data elsewhere
Delete
Massive tables (hundreds of millions/billions of rows, TBs size)
Users want/need to retain data indefinitely
Cold data infrequently accessed but must be online
Datacenter consolidation
Maintenance challenges
Business SLAs at risk
Hybrid solutions
Capability
Stretch large operational tables
from on-premises to Azure with
the ability to query
Benefits
Stretch SQL Server into AzureSecurely stretch cold tables to Azure with remote query processing
SQLSERVER
2016
Azure
Hybrid solutions
Stretch Database architecture
How it works
Creates a secure linked server
definition in the on-premises SQL
Server
Linked server definition has the
remote endpoint as the target
Provisions remote resources and
begins to migrate eligible data, if
migration is enabled
Queries against tables run against
both the local database and the
remote endpoint
Remote
endpoint
Remote data
Azure
Inte
rnet B
ou
nd
aryLocal
database
Local data
Eligible data
Linked Servers
Hybrid solutions
Queries continue working
• Business applications continue working without disruption
• DBA scripts and tools work as before. All controls still held in local SQL Server
• Developers continue building or enhancing applications with existing tools and methods
Hybrid solutions
Order historyName SSN Date
Jane Doe cm61ba906fd 2/28/2005
Jim Gray ox7ff654ae6d 3/18/2005
John Smith i2y36cg776rg 4/10/2005
Bill Brown nx290pldo90l 4/27/2005
Sue Daniels ypo85ba616rj 5/12/2005
Sarah Jones bns51ra806fd 5/22/2005
Jake Marks mci12hh906fj 6/07/2005
Eric Mears utb76b916gi 6/18/2014
Rachel Hogan px61hi9306fj 7/1/2014
Sam Johnson ol43bi506gd 7/12/2014
David Simon tx83hal916fi 7/29/2014
Michelle Burns nb95re926gi 8/10/2014
Order history
Name SSN Date
Jane Doe cm61ba906fd 2/28/2005
Jim Gray ox7ff654ae6d 3/18/2005
John Smith i2y36cg776rg 4/10/2005
Bill Brown nx290pldo90l 4/27/2005
Customer data
Product data
Order History
Stretch to cloud
App
Query
Microsoft Azure
Jim Gray ox7ff654ae6d 3/18/2005
Hybrid solutions
What is IoT?
Internet of Things (IoT)
Azure Data Lake and Data Factory
Get started with U-SQL
Questions