Ich spreche beim PASS Meetup in München über Azure SQL DB

Ich bin am 12.September 2019 zu Gast beim SQL PASS Meetup der Regionalgruppe Bayern und werde einen Überblick über die verschiedenen Azure SQL Databases geben. Kommt natürlich gerne vorbei, jeder ist herzlich eingeladen, die Veranstaltung ist kostenlos und nicht umsonst 😉

Hier kommt eine Kurzbeschreibung meines Vortrages:

Jeder spricht davon, in die Cloud zu gehen, auch mit seinen Datenbanken. Lassen Sie mich Ihnen die Azure SQL Database in all ihren wunderschönen Farben und Optionen vorstellen. Es geht von der allgemeinen Beschreibung über die verschiedenen Engines / Dienste und natürlich die Features, die Sie für Ihr Geld bekommen. Desweiteren werden wir die unterschiedlichen Bereitstellungs-Methoden und Migrationspfade Ihrer Daten anschauen.
Nach meiner Session können Sie die verschiedenen Datenbank-Dienste unterscheiden und wissen, welcher für Sie und Ihre Anwendung der richtige sein könnte!

Ich freue mich auf einen spannenden Abend mit Ihnen!
Anmeldungen bitte hier vornehmen 😉
https://www.meetup.com/de-DE/pass-bayern/events/264489827/

An diesem Abend werde ich aber nicht der einzige Vortragende sein, denn Sebastian Sproß (Microsoft Cloud Architekt) wird auch eine spannende Geschichte zu Datenbanken CI/CD erzählen und was das Ganze mit (Azure) Devops zu tun hat. Auch auf diesen Vortrag freue ich mich schon sehr.

CommunityRocks

128 Tage auf neuen Wegen

Nun bin bereits unglaubliche 128 Tage auf eben diesen neuen Wegen unterwegs, zu denen ich im Mai aufgebrochen bin! Was hat sich seit dem 01. Mai 2019 ereignet? Was ist anders? Was macht es besonders? Was gefällt mir nicht? Ich möchte euch in diesem Blog-Beitrag einen Einblick geben in meine ersten Wochen unter „neuer Flagge“ und mit neuen (anderen) Herausforderungen gemeinsam mit neuen Kollegen.

Gemeinsam neue Herausforderungen meistern

Einer der größten Unterschiede ist definitiv die Kommunikation – in den letzten 12 Jahren habe ich bei Atos (ursprünglich Atos Origin) als SQL Datenbank-Administrator (vom Junior zum Senior bzw Team Lead) gearbeitet… zuletzt bestand Atos aus zahlreichen Legal Entities und rund 120.000 Mitarbeitern weltweit… jetzt bei Kramer&Crew arbeite ich bei einem Unternehmen mit ~140 Mitarbeiter… da sind schon die Kommunikationswege grundsätzlich unterschiedlich und damit auch die Wege und Arten Entscheidungen herbeizuführen. Dies empfinde ich auch als gravierenden Vorteil, man ist viel agiler unterwegs und kann dem Kunden schneller und unkomplizierter helfen.

Auch das Aufgabengebiet und damit die Herausforderungen sind stark unterschiedlich – da ich im Tagesgeschäft noch nicht zu 100% ausgelastet bin, was vielfältige Gründe hat, wie zum Beispiel der Vertrieb, der mich (und meine Kenntnisse) erst langsam an den Kunden, das bietet mir aber auch die Möglichkeit mich mit neuen oder anderen Themen zu beschäftigen. So schaue ich meinem Kollegen – Martin Gudel – sehr gerne über die Schulter, dieser beschäftigt sich sehr intensiv mit Office 365 (Power-Apps, Flows und Kombinationen) und bietet unseren Kunden sehr individuelle Lösungen für deren Anforderungen, alles sehr spannende Tätigkeitsfelder!!!

Gerade die neuen Technologien wie Nutanix Hyper Converged Infrastrukturen waren anfänglich komplett neu und ich musste mich erst einarbeiten, aber egal wenn ich fragte, alle waren sofort bereit mir gemeinsam an einer Lösung zu arbeiten, mir Antworten auf meine Fragen zur Seite zu stehen. Hier gibt es immer hilfreiche Kollegen, die versuchen so gut es zu unterstützen, gerade die agile Arbeitsweise und das entspannte Arbeitsklima lässt mich jeden Morgen gerne zu Arbeit gehen!

neue kreative Problemlösungen

Auch war ich vor einigen Tagen bei einem Kunden, der für seine Applikation eine neue Lösung bauen möchte, von der Ausgangssituation über Phase 1 und Phase 2 zu einer hoch verfügbaren, skalierenden SQL Server Umgebung – onprem !!! Hier ergaben sich aus einer Diskussion mit Martin auch sehr interessante und vielversprechende Lösungsansätze, die ich glücklicherweise erst einmal für mich selber aufbauen und testen konnte. In meiner neuen Position ergeben sich die Möglichkeiten solche großartigen, innovative Lösungen für unseren Kunden zu erdenken, testen und dann ggfs präsentieren.

Oder Kunden einfach von der Genialität einer Microsoft Azure Cloud zu überzeugen, dass dem Kunden für seine Anforderungen zahlreiche unterschiedliche Möglichkeiten zu seiner perfekten Lösung zur Auswahl stehen und er selber entscheiden kann, was für Ihn die optimalste Lösung ist. Sei es der einfache „Lift&Shift“-Ansatz von virtuellen Maschinen, die Kombination von verschiedenen Cloud-Services zu einer Gesamt-Lösung oder eine hybride Lösung. Es bieten sich so viele, neue spannende und interessante Aufgabengebiete und Möglichkeiten…

gute Basis durch gemeinsame Arbeit

So viel kreative Freiheit hatte ich bei Atos leider nicht, hier ging es zum Schluss leider nur noch um Kosten, Effizienzen und wie man Aufgaben standardisieren könnte. Durch diese andere Aufgabenstellung habe ich auch viel gelernt, gerade was Automatisierung mittels Powershell angeht, dies bringt mir auch bei meiner neuen Arbeit sehr viele Vorteile. Auch die Standardisierung von SQL Server Installationen in unterschiedlichen Größen und Ausprägungen von Umgebungen hilft hier sehr weiter, da sie eine gewisse Effizienz mit sich bringt.

In sofern sehe ich mich – dank meiner Vorkenntnisse und Kenntnisse – sehr gut auf die neuen Aufgaben für die unterschiedlichen Kunden einer Kramer&Crew gewappnet. Hier gilt vor allem – auch wenn ich mich wiederholen sollte – der Dank meinen ehemaligen Hamburger Kollegen, die mich immer unterstützt haben und gemeinsam mit mir an diesen Herausforderungen gearbeitet haben, gemeinsam konnten wir viele Hürden und Baustellen bewerkstelligen und voran kommen, wenn auch manchmal die ursprünglichen Wege und Arbeiten komplett wieder über den Haufen geworfen werden mussten, um einen neuen Weg zu beschreiten, der uns dann doch zum Ziel gebracht hat.

mit viel Energie zu neuen Abenteuern

Diese Zusammenarbeit ist auch bei Kramer&Crew sehr deutlich zu spüren und hat mich sehr fasziniert, denn hier haben alle ein gemeinsames Ziel. Auch wenn man nicht unbedingt jeden Tag mit denselben Kollegen zusammen arbeitet oder man in unterschiedlichen Kunden-Umfeldern oder Projekten arbeitet, so haben alle eins spürbar gemeinsam… es geht immer um das Wohl des Kunden! Alle wollen dem Kunden einen ausgezeichneten Service mit einem erfolgreichen Abschluss bieten… Ich fühle mich hier sehr wohl und hoffe auch viele spannende und innovative Kundenprojekte.

Das Azure Meetup Hamburg im August 2019

Die richtigen heißen Tagen sind (hoffentlich) vorbei, dennoch wird es im August noch einmal so richtig heiß was unser Thema im Azure Meetup angeht! Das Azure Readiness Framework wird uns näher gebracht, aber was dieses Framework ist und was es kann, dass wird uns Lennart Passig in wenigen Tagen erläutern. Ich freue mich darauf Lennart endlich mal wieder in Hamburg und ihn erstmalig als Sprecher in unserer Usergroup begrüssen zu können!

Anmelden könnt ihr euch – wie gewohnt und natürlich kostenfrei über die Meetup-Seite des Azure Meetups in Hamburg
Hier geht es direkt zu unserer August Veranstaltung
Zwar gibt es mittlerweile eine Warteliste, aber es lohnt sich bestimmt auch dort einzutragen, da die Erfahrung gezeigt hat, dass der ein oder andere noch kurzfristig absagt, weil ihm/ihr etwas dazwischen gekommen ist. Also „aufpassen“!

Hier kommt der Abstract für das Meetup, damit ihr wisst worum es gehen soll 😉

Azure Readiness: The Cloud Adoption Framework
In this session I will give a general overview on how to start with Azure. What are the key pillars that you need to focus on when working with the cloud? How do I manage to gain control over Azure as an IT organization while maintaining agility? These and more topics I will present as part of the new Cloud Adoption Framework by Microsoft.

Speaker: Lennart Passig
Cloud Solution Architect @ Microsoft
Lennart started working as a System Administrator in the Exchange and Active Directory field for small and midsized companies. After realizing that the future is in cloud computing Lennart shortly started working with the first version of the Microsoft private cloud, back in the day, with System Center components only. Now he is specializing in the Azure public cloud as a Cloud Solution Architect and is also co-organizer of the Azure Meetup in Munich.

https://www.meetup.com/de-DE/Azure-Meetup-Hamburg/events/qmdfdryzlbbc/

Photo by William Stitt on Unsplash – https://unsplash.com/photos/YadCgbsLHcE

Aha-Effekt beim Setzen von SQL Instanz Parametern mit dbatools

In der letzten Woche habe ich bei einem Kunden mehrere SQL Server installiert und musste diese alle identisch installieren und konfigurieren. Was liegt hier näher als dies mit einem Powershell Skript zu machen, daher habe ich mir die „Mühe“ gemacht und die einzelnen Schritte der SQL Server Konfiguration mit dbatools zu realisieren. Ich möchte in diesem Beitrag nicht auf alle Schritte der Konfiguration eingehen, sondern nur einen Teil davon zeigen, der mir einen gewissen „Aha-Effekt“ brachte.

Im Rahmen der SQL Server Konfiguration sollten die Default-Werte von „MaxDop“ und „Cost Threshold for Parallelism“ angepasst werden. Das Setzen von MaxDoP mittels Powershell bzw dbatools ist relativ einfach da es hierfür einen eigenen Befehl gibt, aber auf für den „Cost Threshold for Parallelism“ hat dbatools einen „Workaround“, hier gibt es leider (noch) keinen direkten Befehl für.

Set-DbaMaxDop -SqlInstance sql2008, sql2012

Diese Befehlszeile legt den Wert von „Max DOP“ (Maximal Degree of Parallelism) auf den empfohlenen Wert für die SQL Server Instanzen „SQL2008“ und „SQL2012“ fest. Immer in Verbindung mit diesem Konfigurations-Parameter steht immer der „Cost Threshold“, welcher per Default immer noch auf 5 steht.

Alle SQL Server Instanzen auf einmal…

Um alle SQL Server Instanzen relativ schnell und einfach zu konfigurieren, habe ich mir das Kommando „Get-DbaRegisteredServer“ (als Alias von Get-DbaRegServer) vorgenommen. Als Vorbereitung hierfür habe ich auf allen Servern im SQL Server Management Studio die notwendigen Server (hier 2 Server mit je 3 Instanzen) als „Registered Server“ angelegt und konnte dann mit Powershell aka dbatools darauf zugreifen.

Laut dbatools-Dokumentation, ruft dieser Befehl eine Liste der SQL Server-Objekte ab, die in lokal registrierten Gruppen sowohl im Azure Data Studio als auch auf dem zentralen Verwaltungsserver gespeichert sind.

geborgt bei dbatools.io - Vielen Dank an Chrissy

Mit diesem Befehl und der Möglichkeit die Objekte aus dem Ergebnis-Objekt als Pipeline weiterzugeben, kann man schöne Dinge machen, wie eben den Wert für „MaxDoP“ auf allen Server bzw Instanzen in einer Kommandozeile zu konfigurieren…

Get-DbaRegisteredServer | Set-DbaMaxDop

Nun aber zu meinem Aha-Effekt mit einer weiteren Kommandozeile 😉

Cost Threshold For Parallelism

Wie oben schon angedeutet, geht die Anpassung nur über eine Work-around mit dbatools und nicht mit einem dbatools-Kommando, hierzu verwende ich jetzt „Set-DbaSpConfigure“. Natürlich könnte ich auch den „MaxDoP“ mit diesem Kommando konfigurieren, dann muss ich aber selber für die vorherige Ermittlung und Berechnung des jeweiligen Wertes für MaxDoP sorgen, also die vorhandenen Kerne ermitteln, diese dann gegen die Best-Practise matchen und den Wert über eine Variable an den Set-Befehl weitergeben. Ich setze diesen Werte in 98% aller Instanzen auf 40 (ausser der Kunde oder die Applikation möchten etwas anderes), daher benötige ich hier keine Logik.

Meiner obigen Logik bzw der Dokumentation folgend habe ich es mit folgender Kommandozeile versucht:

Get-DbaRegisteredServer | Set-DbaSpConfigure -Name 'CostThresholdForParallelism' -Value 40

Dies brachte mich aber zu einem (auf den ersten Blick) nicht nachvollziehbaren Fehler (auch mein Versuch den Wert als String zu übergeben war nicht erfolgreich):

WARNING: [13:02:23][Set-DbaSpConfigure] Value out of range for Server1\Instanz1 ( <-> )
WARNING: [13:02:23][Set-DbaSpConfigure] Value out of range for Server2\Instanz1 ( <-> )
WARNING: [13:02:23][Set-DbaSpConfigure] Value out of range for Server1\Instanz2 ( <-> )
WARNING: [13:02:23][Set-DbaSpConfigure] Value out of range for Server2\Instanz2 ( <-> )
WARNING: [13:02:23][Set-DbaSpConfigure] Value out of range for Server1\Instanz3 ( <-> )
WARNING: [13:02:23][Set-DbaSpConfigure] Value out of range for Server2\Instanz3 ( <-> )

Ich habe den Grund hierfür leider noch nicht wirklich gefunden, vielleicht kann mir jemand das Phänomen näher bringen… vielleicht ist dies ja aber auch so gewollt oder ggfs sogar ein „Bug“…

Aber ich war vorher schon so erfolgreich mit dem Pipelining, dass ich das auch hier angewendet habe… also Ermitteln wir erst alle SQL-Instanzen, ermitteln dann auf diesen Instanzen den aktuellen Parameter für den „Cost Threshold For Parallelism“ und setzen ihn dann auf den neuen Wert 40.

Get-DbaRegisteredServer | Get-DbaSpConfigure -Name 'CostThresholdForParallelism' | Set-DbaSpConfigure -Value 40
ComputerName  : Server1
InstanceName  : Instanz1
SqlInstance   : Server1\Instanz1
ConfigName    : CostThresholdForParallelism
PreviousValue : 5
NewValue      : 40

ComputerName  : Server2
InstanceName  : Instanz1
SqlInstance   : Server2\Instanz1
ConfigName    : CostThresholdForParallelism
PreviousValue : 5
NewValue      : 40

ComputerName  : Server1
InstanceName  : Instanz2
SqlInstance   : Server1\Instanz2
ConfigName    : CostThresholdForParallelism
PreviousValue : 5
NewValue      : 40

ComputerName  : Server2
InstanceName  : Instanz2
SqlInstance   : Server2\Instanz2
ConfigName    : CostThresholdForParallelism
PreviousValue : 5
NewValue      : 40

ComputerName  : Server1
InstanceName  : Instanz3
SqlInstance   : Server1\Instanz3
ConfigName    : CostThresholdForParallelism
PreviousValue : 5
NewValue      : 40

ComputerName  : Server2
InstanceName  : Instanz3
SqlInstance   : Server2\Instanz3
ConfigName    : CostThresholdForParallelism
PreviousValue : 5
NewValue      : 40

Und schon habe ich wieder etwas großartiges für mich selber herausgefunden und bin um eine Erfahrung im Umgang mit dbatools reicher!

Ich liebe dieses Powershell-Modul, mit dem ich zahlreiche (nahezu alles!) Dinge am und um den SQL Server herum anpassen, optimieren und automatisieren kann. Ich verwende es sehr gerne (wie man auch meinen anderen Blog-Posts sehen kann) und mittlerweile bei allen meinen Kunden. VIELEN DANK an @Chrissy und die vielen anderen Contributors, die sich die Mühe rund um dieses Community-Tool zu machen!

Beitragsbild – von Ben White auf Unsplash

Das Azure Meetup Hamburg im Juli 2019

Im Juli ist es nicht wie gewohnt der dritte Dienstag im Monat, sondern schon der zweite… natürlich mit einer gewissen Rücksicht auf die Ferien 😉 Also sind es nur noch knapp 10 Tage bis zum nächsten Azure Meetup in Hamburg… wir bekommen wieder Besuch von Microsoft Deutschland aus München, Andre Essing (Microsoft TSP) wird bei uns sein. Als ehemaliger MVP und immer noch stetiger Begleiter in der europäischen Data-Platform-Community ein immer wieder gern gesehener Gast, der mit seinem Know-How und seiner Erfahrung viel Wissen weitergeben kann. Daher freue ich mich sehr auf diesen sicherlich spannenden Abend mit euch.

Wir hatten zwar noch kurz inhaltlich diskutiert – hatte ich beim Juni-Meetup auch kurz angedeutet – ob wir noch was zu CosmosDB an diesem Abend machen sollen oder nicht, gemeinsam mit Andre sind wir aber zu dem Schluss gekommen, dass hier die Tiefe und Länge der zur Verfügung stehenden Zeit nicht ausreichen würde, um einer CosmosDB gerecht zu werden. Somit werden wir im Juli erst einmal nicht über CosmosDB reden, sondern „nur“ über Modern Datawarehouse und Databricks.

Modern Datawarehouse and Databricks - Andre Essing - Azure Meetup Hamburg
Modern Datawarehouse and Databricks – Andre Essing – Azure Meetup Hamburg

Anmelden könnt ihr euch – wie gewohnt und natürlich kostenfrei über die Meetup-Seite des Azure Meetups in Hamburg
Hier geht es direkt zu unserer Juli Veranstaltung
Zwar gibt es mittlerweile eine Warteliste, aber es lohnt sich bestimmt auch dort einzutragen, da die Erfahrung gezeigt hat, dass der ein oder andere noch kurzfristig absagt, weil ihm/ihr etwas dazwischen gekommen ist. Also „aufpassen“!

Hier kommt der Abstract für das Meetup, damit ihr wisst worum es gehen soll 😉

Es gibt eine Menge Wege und Möglichkeiten Mehrwerte aus seinen Daten zu ziehen. Seit Jahren machen wir das mit den gleichen Techniken in unseren „klassischen“ Data Warehouse Umgebungen. Aber die Welt ist im steten Wandel und so auch die Daten.

Wo die Daten vor ein paar Jahren noch ausschließlich strukturiert waren, wächst die Zahl von schemalosen Datentypen ins unermessliche, und eine Ende ist nicht in Sicht. Wir kämpfen mit Daten, bei denen sich ständig das Schemata ändert und versuchen Mehrwerte aus neuen Datentypen wie Soziale Medien, Videos und Bildern zu ziehen.

In dieser Whiteboard Session möchte ich mit euch über moderne Wege sprechen, Ihre Daten zu speichern, zu analysieren und zu visualisieren. Zusammen zeichnen wir ein Modern Data Warehouse, schauen uns an welche Möglichkeiten sich bieten verschiedenste Daten zu analysieren und warum uns die Cloud hier hilft.

Von Datawarehouse, über BI, hin zur modernen Datenanalyse und künstlicher Intelligenz – Azure Databricks, die Eierlegende Wollmilchsau

Hast Du schon von Azure Databricks, dem neuen Mitglied in der Azure Big Data Familie, gehört? Es wäre falsch von mir, Azure Databricks nur als einen verwalteten Apache Spark Dienst zu bezeichnen, da Databricks so viel mehr bietet.

Neben dem Transformieren von Daten kann Databricks nicht nur Deine Daten analysieren und streamen, es kann auch Deine ETL-Prozesse abbilden, Machine Learning Modelle trainieren und zur Exploration von Daten genutzt werden. All das steckt im leistungsstarken Kern von Databricks, gepaart mit einer integrierten Entwicklungsumgebung.

Als “First-Class Citizen” in Azure ist Databricks ein “Platform as a Service”-Angebot, das es jedem ermöglicht, Big Data für sich zu nutzen.

Selbstverständlich, sind die ersten Schritte mit einer neuen Technologie die schwierigsten. Genau deshalb möchte ich mir mit euch in dieser Session ansehen, wie man Azure Databricks bereitstellt. Du lernst wie man Cluster konfiguriert, zeitgesteuerte Jobs einplant, auf Sicherheit achtet und vieles mehr.

https://www.meetup.com/de-DE/Azure-Meetup-Hamburg/events/hhtbxqyzkbvb/