Cloud-Datenbank an Microsoft Datalake anbinden

In diesem kurzen Blog-Beitrag wird dargestellt, wie Sie eine Azure SQL Datenbank an den Azure-Service "Datalake Analytics" anbinden.

Wie schon angekündigt, hat Microsoft Anfang März 2017 die CREATE/ALTER CREDENTIAL Befehle von U-SQL neu aufgebaut. Dadurch ändert sich die Vorgehensweise wie man sich an eine externe Datenbank wie z.B. „Azure SQL“ verbindet.

 

Das Anlegen von Credentials geht nur noch via PowerShell mit den folgenden Befehlen:

 

In diesem kurzen Blog-Beitrag wird Ihnen kurz dargestellt, wie das Anlegen von Credentials funktioniert. Für das folgende Beispiel werden Visual Studio 2015 mit den Azure Data Lake Tools für Visual Studio verwendet.

  


  

1. Neue Datenbank in Visual Studio anlegen

In Visual Studio machen Sie einen Rechtsklick auf den Datenbank Order von dem Azure Datalake Analytics (ADLA) Account und legen Sie eine neue Datenbank an. Diese Datenbank beinhaltet das Schema der externen Ressource, welche Sie abfragen möchten. Wählen Sie einen aussagekräftigen Namen für diese Datenbank. In unserem Beispiel verwenden wir "Euro2016_AzureSQLDB" als Datenbanknamen.

 

 

  

2. Installieren Sie Azure PowerShell

  • Starten Sie Windows PowerShell als Administrator
  • Geben Sie den Befehl "Install-Module AzureRM" ein

 



  • Mit dem Befehl Get-Module -ListAvailable *Azure* können Sie im Anschluss sicherstellen, dass Azure Datalake Analytics installiert wurde.

 

 

3. Konfigurieren Sie die Verbindung zu Azure SQL DB

Weiter in PowerShell, melden Sie sich mit den folgenden Befehlen in ihrem Azure Account an:

 

  • Login-AzureRmAccount;
  • Get-AzureRmSubscription
  • Set-AzureRmContext –SubscriptionID "xxxxxxsubscriptionID"

 

 

Legen Sie die Credentials an, hier ist die allgemeine Syntax:

  • New-AzureRmDataLakeAnalyticsCatalogCredential -AccountName "<adl_account>" -DatabaseName "DB_NAME_CREATED_IN_EARLIER_USQL" -CredentialName "<credential_name>" -Credential (Get-Credential) -DatabaseHost "<azuresqldb>.database.windows.net" -Port <port-number>;

 

 

Für unser Beispiel, wäre es: 

  • New-AzureRmDataLakeAnalyticsCatalogCredential -AccountName "pmone" -DatabaseName "Euro2016_AzureSQLDB" -CredentialName "ASQLDBCred" -Credential (Get-Credential) -DatabaseHost "xxxx.database.windows.net" -Port 1433;

  • Sie werden nach Benutzername und Passwort von Ihrer Microsoft Azure SQL Datenbank gefragt.

 

4. Firewall SQL Server

Sie müssen sicherstellen, dass der Azure SQL DB Server die Verbindungen zu den “Azure Services” zulässt. Zur Info: Das muss auf dem Server eingestellt werden und nicht in der Datenbank!

 

 

 

5. Test mit einem U-SQL Code Beispiel

In Visual Studio legen Sie ein U-SQL Projekt an und führen Sie folgenden Code auf Ihren Azure Datalake Analytics aus.

 

In diesem Code-Beispiel lesen wir Daten sowohl aus einer Azure SQL Datenbank als auch aus einer CSV-Datei aus, die auf einem "Azure Blob Speicher" liegt. Die zwei Datenquellen werden später über einen "Full Outer Join" zusammengeführt. Im Anschluss wird das Ergebnis als CSV-Datei auf dem Azure Datalake Storage zurückgeschrieben.

 

 

Zusammenfassung

Wir haben gezeigt, wie Daten aus Azure SQL DB in Azure Datalake Analytics (ADLA) integriert werden können. Dafür haben wir:

  1. Eine neue Datenbank in ADLA angelegt, um das Schema der externen Azure SQL Datenbank zu speichern.
  2. Azure PowerShell installiert
  3. die Verbindung zu Azure SQL DB in PowerShell konfiguriert
  4. Azure SQL Server Firewall freigeschaltet
  5. Test mit einem U-SQL Code