Event: Let's talk about SQL Server 2017 – What‘s New with BI & Friends?, 31.01.2018
Speaker: Sascha Götz, inovex
Bei diesem Meetup zeigt Sascha Götz im Rahmen des PASS-Treffens die neuesten SQL Server 2017 Features aus dem BI-Kontext. Sascha stellte anhand jeder Menge Demos folgende Features vor:
• SQL Server relationale Engine (new string functions / In-memory enhancements / GraphDB)
• Integrations Services (Scale Out for SSIS / SSIS in the Cloud)
• Analysis Services (New "Get Data" experience / New Date Relation features / Object-level security)
• Reporting Services (REST Api / DAX Query Designer / Report comments)
Mehr Tech-Vorträge: https://www.inovex.de/de/content-pool/vortraege/
Mehr Tech-Artikel: https://www.inovex.de/blog
2. ist Microsoft Certified Solution Expert für Business
Intelligence und als Senior BI Consultant bei der inovex
GmbH beschäftigt. Er beschäftigt sich seit SQL Server 2000
mit dem Produkt und seinen Komponenten und bringt zudem
langjährige Erfahrung als .NET Entwickler und Datenbank-
designer mit.
Seit 2015 beschäftigt er sich mit der Azure Data Platform.
2
Sascha Götz
Business Intelligence Consultant
7. 7
Database Engine
New string functions
• STRING_AGG()
Concat über mehrere Zeilen
SELECT Firstname
FROM AdventureWorks2017.Person.Person
SELECT STRING_AGG (FirstName, ',')
FROM AdventureWorks2017.Person.Person
10. 10
Database Engine
In-Memory enhancements
• Memory-Optimized tables (àka Hekaton)
• CASE expressions are now supported for natively
compiled T-SQL modules.
• The limitation of 8 indexes on memory-optimized tables
has been eliminated.
• Support for computed columns in memory-optimized
tables, including indexes on computed columns.
• Memory-optimized filegroup files can now be stored on
Azure Storage.
12. 12
Graph DB
PersonCity
likes
n n
Relationale DB Graph DB
Tabelle: City
Tabelle: Person
Tabelle: Person_likes_City
Node: City
Node: Person
Edge: Likes
Tabelle: Restaurant
Tabelle: Person_likes_Restaurant Edge: livesin
Edge: locatedin
Node: Restaurant
Restaurant
n
nn
1
likeslocatedin
n1
livesin
Sehr gut in der Abbildung von
komplexen Relationen
Tabelle: Restaurant_locatedin_City
Tabelle: Person_livesin_City
13. 13
Graph DB
Sehr gut in der Abfrage von komplexen Relationen!
Aufgabe:
„Gib mir alle Personen die in München wohnen und ein Restaurant in Berlin liken“
Relationale DB Graph DB
SELECT *
FROM Person
INNER JOIN Person_livesin_City
on Person.Person_ID = Person_livesin_City.Person_ID
INNER JOIN City as PersonCity
on PersonCity.City_ID = Person_livesin_City.City_ID
WHERE PersonCity = 'München'
INNER JOIN Person_likes_Restaurant
on Person_likes_Restaurant.Person_ID = Person.Person_ID
INNER JOIN Restaurant
on Restaurant.Restaurant_ID = Person_likes_Restaurant.Restaurant
INNER JOIN Restaurant_locatedin_City
on Restaurant_locatedin_City.Restaurant_ID = Restaurant.Restaurant_ID
INNER JOIN City as RestaurantCity
on RestaurantCity.City_ID = Restaurant_locatedin_City.City_ID
AND RestaurantCity = 'Berlin'
SELECT *
FROM Person, livesIn, City PersonCity
WHERE MATCH (
Person-(livesIn)->PersonCity
)
AND PersonCity = 'München'
,likes, Rastaurant, locatedIn, City RestaurantCity
AND RestaurantCity = 'Berlin'
AND
Person-(likes)->Reastaurant-(locatedIn)->RestaurantCity
14. 14
Graph DB
• Nodes
CREATE TABLE Person (
ID INTEGER PRIMARY KEY,
name VARCHAR(100)
) AS NODE;
SELECT * FROM Person
INSERT INTO Person VALUES (1,'John');
15. 15
Graph DB
• Edges
CREATE TABLE likes
AS EDGE;
SELECT * FROM likes
INSERT INTO likes VALUES (
(SELECT $node_id FROM Person WHERE id = 1),
(SELECT $node_id FROM Restaurant WHERE id = 1));
16. 16
Graph DB
Limitations? - Aber gerne!
• No graph temporary tables
• No graph table variables
• No graph system-versioned temporal tables
• Node and edge tables cannot be memory optimized tables L
• No Edge Update (nur Attribute)
• No Cross DB Queries
19. • SQL Server 2017 Integration Services (SSIS) now
supports SQL Server on Linux
• Scale Out for SSIS (on premise)
• SSIS in the cloud (ADF 2.0)
19
Integration Services
New features
34. › SSIS Pakete in einer managed
Umgebung ausführen
› Bereitstellung ISRuntime über
PowerShell* oder
„Author & Monitor“
› Best practice:
Anbindung von on-premise
Datenbanken über
VNET->Local Network Gateway
*https://docs.microsoft.com/en-us/azure/data-factory/tutorial-deploy-ssis-packages-azure
34
Integration Services
SSIS in the cloud with Azure Data Factory 2.0
35. › Bereitstellung SSIDB
in der Cloud
› Scheduling
› On-Premiuse SQL Server Agent
› ADF 2.0 „Execute SQL“
35
Integration Services
SSIS in the cloud with Azure Data Factory 2.0
36. › Limitations? - Aber gerne!
› Keine custom DLLs
› Keine Third Party Komponenten
› On-Premise daten nur über Classic VNETs (!!!)
› Nur Project Deployment model
36
Integration Services
SSIS in the cloud with Azure Data Factory 2.0
39. 39
Analysis Services
Multidimensional
Neue Features:
“Multidimensional mode and Power Pivot for SharePoint
mode are a staple for many Analysis Services
deployments. In the Analysis Services product lifecycle,
these modes are mature. There are no new features for
either of these modes in this release. However, bug fixes
and performance improvements are included.”
40. › Tabular mode is now the default installation option for
Analysis Services.
40
Analysis Services
Tabular
41. 41
Analysis Services
New Get Data experience (Power Query)
› Simple Transformationen in SSAS über Power Query
möglich
42. › Mutliple Relations Fact<-> Date Dimension
› DAX Formular with „USERELATIONSHIP“-Hint
42
Analysis Services
New Date Relation features
46. › SQL Server Reporting Services is no longer available to
install through SQL Server setup
› RESTful API
https://app.swaggerhub.com/apis/microsoft-rs/SSRS/2.0
46
Reporting Services