.NET Interactive Notebooks

Jupyter Notebooks haben mittlerweile in verschiedene MicrosoftTools Einzug gehalten. Mit einem PowerShell Kernel in Azure Data Studio hat Microsoft vor ein paar Wochen einen relativ neuen Kernel bereitgestellt. Mit Azure Synapse Analytics hat Microsoft auch schon einen C# Kernel als Notebook Erweiterung im Angebot. 

Seit einiger Zeit bietet Microsoft den C# Kernel nun auch mit weiteren Kernels in der sogenannten .NET Interactive Notebooks Extension für das VIsual Studio an. 

Die Extension wird offiziell zwar noch als Preview zur Verfügung gestellt, ist aber aktuell schon in der Version 1.0.160204 verfügbar. Auch wenn die Installationsanleitung noch auf die Notwendigkeit der Visual Studio Code Insider Version verweist, kann mit dem letzten Update und dem .NET 5 SDK auch die reguläre Visual Studio Code VErsion verwendet werden. Die Extension kann direkt über VS Code installiert werden oder über den Marketplace .NET Interactive Notebooks – Visual Studio Marketplace.

Nach der Installation kann man über Str + Shift + P in den Commands ein neues Notebook erstellen oder ein bestehendes Notebook öffnen. Ein direktes Erstellen oder Öffnen eines Notebooks über das reguläre Menü ist aktuell nicht möglich.

Im Rahmen eines Kundenprojektes haben wir eine Bibliothek ParquetVerleger entwickelt. Ursprünglich – wie der Name vermuten lässt – war die Bibliothek dazu gedacht Parquet Dateien schnell zu erstellen und zu kopieren. Mittlerweile hat sich die Bibliothek stark weiter entwickelt und kann verschiedene weitere Formate wie SQL Datenbanken, Avro, CDM oder CSV laden und speichern. Das schöne an der Biblitohek ist die so nun schnelle Bearbeitung und Konvertierung von Daten innerhalb von C# und das wie die Extension sagt Interactive.

Die Bibliothek lässt sich via Nuget sehr schnell in einem C# Notebook installieren.

Und mit ein paar Zeilen Code lassen sich z.B. vollständige Tabellen aus dem SQL Server in beliebige Formate exportieren, wie unten Beispielhaft als Parquet Datei.

Für uns stellen .NET Interactive Notebooks so eine sehr gute Lösung dar, um schnell und einfach auch in .NET Dataengineering zu betreiben. Die Entwicklung entsprechender Bibliotheken und deren Verwendung in den .NET Interactive Notebooks ist dabei aber nur der Anfang, entsprechende Bibliotheken und Entwicklungen werden auch in Spark Notebooks innerhalb von Azure Synapse Analytics verwendet.