Database
 sql >> Datenbank >  >> RDS >> Database

Hochladen von Dokumenten in Azure Data Lake und Exportieren von Daten mit SSIS

Einführung

Azure wächst jeden Tag. Microsoft hat Azure entwickelt, einen Cloud-Computing-Dienst, der 2010 veröffentlicht wurde.

Laut Microsoft nutzen 80 % der Fortune-500-Unternehmen Azure. Außerdem stammen 40 % der Azure-Einnahmen von Startups und unabhängigen Softwareanbietern. 33 % der virtuellen Azure-Computer verwenden Linux. Microsoft rechnet damit, 2018 20 Milliarden $ zu verdienen.

Aus diesem Grund migrieren Unternehmen einen Teil der Daten zu Azure und manchmal alle Daten.

Azure Data Lake ist ein spezieller Speicher, um Big Data parallel in Azure zu analysieren. Es ist für Analysen optimiert. Sie können Daten sozialer Netzwerke, E-Mails, Dokumente, Sensorinformationen, geografische Informationen und mehr speichern.

Wenn Sie nur Daten speichern möchten, reicht der Azure Blob Storage. Wenn Sie die Daten analysieren möchten, ist Data Lake die beste Option, da es für Berichte entwickelt wurde.

Der Data Lake Store wird normalerweise mit Cortana Analytics Suite, Power BI analysiert, SSIS ist ein bekanntes und beliebtes Tool zum Migrieren von Daten. In diesem neuen Artikel zeigen wir, wie Sie SSIS verwenden, um Daten zu Azure zu migrieren. Wir zeigen auch, wie Sie Daten aus einer TXT-Datei in Azure Data Lake Store in den lokalen SQL Server exportieren.

Wenn Sie keine Erfahrung mit Azure haben, aber Erfahrung mit SSIS haben. Dieser Artikel ist für Sie.

Wir führen die folgenden Schritte aus, um die Daten in Azure Data Lake zu importieren:

  1. Installieren Sie das SSIS Feature Pack für Azure
    Standardmäßig können Sie keine Verbindung mit Azure Data Lake Store herstellen. In den SSIS-Projekten muss das Feature Pack für Azure installiert werden.
  1. Erstellen Sie einen Azure Data Lake Store (ADLS) im Azure-Portal
    Wenn Sie keinen Azure Data Lake Store haben, müssen Sie einen neuen erstellen. Wir erstellen einen Ordner in diesem ADLS und importieren die Daten aus einem lokalen Ordner hierher.
  1. Erstellen Sie eine App-Registrierung
    Im Azure-Portal gibt es in den Azure Active Directory (AAD)-Optionen eine Option zur App-Registrierung. Wir verwenden eine App-Registrierung für den Zugriff auf ADLS.
  1. ADLS Berechtigungen zuweisen
    In ADLS im Datenexplorer müssen Sie der App-Registrierung Zugriff gewähren.
  1. Dateien mit SSIS nach ADLS exportieren
    Mit der ADLS-Aufgabe für SSIS im SSDT können Sie die Daten aus einer lokalen Datei nach SSIS exportieren. Dazu benötigen Sie die ADLS-URL, die Anwendungs-ID der App-Registrierung und den Schlüssel der App-Registrierung.
  1. Überprüfen Sie die Ergebnisse
    Gehen Sie schließlich im Azure-Portal zu ADLS, Data Explore, und überprüfen Sie, ob die Dateien erfolgreich kopiert wurden.

Anforderungen

Für diesen Artikel wird folgende Software benötigt:

  1. SSIS installiert (im SQL Server-Installationsprogramm enthalten)
  2. SQL Server Data Tools (SSDT) ​​installiert
  3. Ein Azure-Konto
  4. Das SSIS Feature Pack für Azure

Legen Sie los

1. Installieren Sie das SSIS Feature Pack für Azure
Es gibt ein kostenloses Feature Pack für SSIS, das Aufgaben zum Herstellen einer Verbindung mit Azure enthält. Das SSIS Feature Pack muss installiert sein. Dieses Paket enthält mehrere Aufgaben für die Arbeit mit Big Data in Azure (HDInsight), Azure Blob Storage, Azure Data Lake Store, Azure Data Warehouse und mehr:

Das Installationsprogramm ist 29 MB groß. Es gibt eine Version für 32 und 64 Bit.

2. Erstellen Sie einen Azure Data Lake Store (ADLS) im Azure-Portal
Sie benötigen außerdem ein Azure-Abonnement. Es gibt Testversionen für Neulinge, die diese neue Technologie erlernen möchten. Wir erstellen einen Azure Data Lake Store. In einem Data Lake Store speichern Sie Ihre Daten in Azure für Analysen. Melden Sie sich beim Azure-Portal an, gehen Sie zu Weitere Dienste (>) und schreiben Sie Data Lake Store in das Suchtextfeld. Wählen Sie den Data Lake Store aus:

Ich gehe davon aus, dass Sie noch keinen Data Lake Store haben, also erstellen wir einen neuen, indem Sie auf das Symbol +Hinzufügen klicken:

Geben Sie einen Namen für den Data Lake Store an. Die Ressourcengruppe soll mehrere Azure-Ressourcen in Gruppen verwalten. Standort ist der Ort, der Ihnen am nächsten liegt. Sie können den Verbrauch bezahlen. Der Preis liegt bei etwa 0,39 USD pro GB. Je mehr TB, desto billiger ist es. Außerdem fallen Gebühren pro Lese- und Schreibvorgang an (10.000 Schreibvorgänge pro 0,05 $ und 10.000 Lesevorgänge pro 0,004 $).

Klicken Sie nach der Erstellung auf den Data Lake Store:

Um Ordner zu erstellen und Dateien hinzuzufügen, gehen Sie zum Daten-Explorer:

Erstellen Sie einen neuen Ordner. Wir werden Dateien in diesen Ordner hochladen. Vergeben Sie einen Namen und drücken Sie OK:

3. Erstellen Sie eine App-Registrierung
Wir erstellen eine App-Registrierung für den Zugriff auf Data Lake. Bei der App-Registrierung registrieren Sie Ihre Anwendung, und Ihnen wird eine Anwendungs-ID und ein Schlüssel zugewiesen. Dazu müssen wir zu Weitere Dienste>Active Directory:

gehen

Gehen Sie zu App-Registrierungen:

Fügen Sie einen Namen hinzu. Der Anwendungstyp ist Web-App/API (der Standardtyp). Die URL kann eine beliebige URL sein:



Klicken Sie auf die gerade erstellte Anwendung:


Um eine Verbindung mit Azure Data Lake Store herzustellen, benötigen Sie die Anwendungs-ID:

Gehen Sie in der App-Registrierung zu Schlüssel. Erstellen Sie einen neuen Schlüssel und weisen Sie ihm eine Ablaufdauer zu. Kopieren Sie den Wert und fügen Sie ihn irgendwo ein. Dieser Wert ist erforderlich, um eine Verbindung mit dem Azure Data Lake Store herzustellen:

Wechseln Sie zum Data Lake Store und kopieren Sie die URL im Abschnitt Übersicht. Diese Informationen sind auch nützlich, um eine Verbindung über SSIS herzustellen:


4. Weisen Sie ADLS Berechtigungen zu
Wir werden unseren App-Registrierungen Berechtigungen erteilen. Diese Berechtigungen ermöglichen den Zugriff auf ADLS. Gehen Sie zum Daten-Explorer:

Drücken Sie die Zugriffsoption, um die App-Registrierung hinzuzufügen:


Drücken Sie auf +Hinzufügen Option zum Hinzufügen der App-Registrierung:

Schreiben Sie in das Textfeld AppService und drücken Sie die Auswahltaste:


Lese-, Schreib- und Ausführungsberechtigungen zuweisen. Sie können Berechtigungen für den Ordner und den Ordner und alle untergeordneten Elemente hinzufügen.

Sie können auch Zugriff, Standardberechtigungen und beides zuweisen:

5. Exportieren von Dateien nach ADLS mit SSIS
Erstellen Sie in SSDT ein SSIS-Projekt. Wenn Sie das Feature Pack für Azure installiert haben, können Sie die Azure Data Lake Store-Dateisystemaufgabe sehen. Ziehen Sie diese Aufgabe per Drag-and-Drop in das Designfenster:

Doppelklicken Sie auf die Task „Azure Data Lake Store-Dateisystem“. Es gibt 2 mögliche Operationen. Zum Kopieren aus Azure Data Lake (ADL) oder zum Kopieren nach ADL. In diesem Beispiel kopieren wir von einer lokalen Datei nach ADL. In der Quelle verwenden wir den Ordner c:\sql, wir haben einige lokale Dateien, die wir nach ADL kopieren können. In AzureDataLakeDirectory verwenden wir den freigegebenen Ordner. Dieser Ordner wurde in vorherigen Schritten im ADL Store erstellt. Die AzureDataLakeConnection wird später erläutert. Leben Sie den Ablauf der Datei (diese Option wird verwendet, um anzugeben, wann die Dateien ablaufen):

In AzureDataLakeConnection wählen wir die Option Neue Verbindung, um eine neue zu erstellen:

In der Verbindung benötigen Sie den ADLS-Host. Dies ist die URL, wenn Sie im Portal zum ADLS-Abschnitt Übersicht wechseln. Bei der Authentifizierung verwenden wir eine Azure AD-Dienstidentität. Diese Option verwendet die in Azure erstellte App-Registrierung.

Die Client-ID ist die Anwendungs-ID der App-Registrierung. Sie finden diese Informationen im Abschnitt App-Registrierung von Azure AD.

Den geheimen Schlüssel finden Sie im Portal in der App-Registrierung in Azure AD im Abschnitt Schlüssel. Sie können einen Schlüssel erstellen und den Wert in diesem Abschnitt verwenden.

Mandantenname ist der Name der Azure AD-Domäne (wir erklären die Azure-Domäne).

Drücken Sie die Testverbindung, um zu überprüfen, ob alles in Ordnung ist. Sobald alles in Ordnung ist, drücken Sie OK:

Wenn Sie Ihre Domäne (Mandantenname) nicht kennen, können Sie dies überprüfen, indem Sie oben rechts im Portal auf klicken.


Sie können das SSIS-Paket ausführen, um die Daten nach ADLS zu exportieren. In diesem Beispiel haben wir 3 Dateien im lokalen Ordner.

6. Überprüfen Sie die Ergebnisse
Wenn alles in Ordnung ist, gehen Sie im Azure-Portal zu ADLS und gehen Sie zu Daten-Explorer. Gehen Sie zum freigegebenen Ordner und überprüfen Sie die Dateien dort. Sie können die 5 kopierten Dateien sehen.


Exportieren Sie Daten aus Data Lake in den lokalen SQL Server

Im zweiten Teil exportieren wir in Azure Data Lake gespeicherte Daten nach SQL Server lokal. Ziehen Sie eine Datenflussaufgabe per Drag-and-Drop:

Doppelklicken Sie auf die Datenflussaufgabe, und ziehen Sie die Azure Data Lake Store-Quelle und das SQL Server-Ziel per Drag-and-Drop. Verbinden Sie beide Aufgaben. Doppelklicken Sie auf Azure Data Lake Store Source:

Wählen Sie die im ersten Teil des Artikels erstellte ADLS-Verbindung aus. Geben Sie im Pfad den ADLS-Pfad (Ordner-/Dateiname) an. In diesem Szenario ist das Dateiformat Text und das Trennzeichen ein Komma:

In Spalten können Sie die Spalten sehen. Wenn keine Spalten vorhanden sind. Standard-Spaltenüberschriften werden erstellt:

Doppelklicken Sie auf das SQL Server-Ziel. Drücken Sie Neu, um einen Verbindungsmanager zu erstellen:

Erstellen Sie eine neue Verbindung. Geben Sie den Namen des SQL-Servers, die Authentifizierung und die Datenbank an, in der Sie die Daten speichern möchten:

Drücken Sie in der Tabelle oder Ansicht auf Neu, um eine neue Tabelle zu erstellen:



Standardmäßig haben Sie den folgenden T-SQL-Code:

Ändern Sie den Code, um einen Tabellennamen und Spaltennamen anzugeben:

CREATE TABLE [smartphones] (

    [ID] int,

    Brand nvarchar(100),

    Version nvarchar(100)

)

Gehen Sie zur Seite Zuordnungen und weisen Sie Prop_0 der ID, Prop_1 der Marke, Prop_2 der Version zu:

Sie werden einen Fehler im SQL Server-Ziel haben. Dass die Spalte aufgrund eines Konvertierungsproblems nicht eingefügt werden kann. Dies liegt daran, dass Prop_0 eine Zeichenfolge und die SQL Server-Tabelle eine ganze Zahl ist:

Ziehen Sie die Datenkonvertierungsaufgabe per Drag-and-Drop und stellen Sie eine Verbindung zwischen der Azure Data Lake Store-Quelle und dem SQL Server-Ziel her:

Doppelklicken Sie auf Datenkonvertierung, wählen Sie Prop_0 und konvertieren Sie den Datentyp in eine vorzeichenbehaftete Vier-Byte-Ganzzahl [DT_I4] und weisen Sie einen Alias ​​zu. Die Datenkonvertierung erstellt eine weitere Spalte mit einem anderen Datentyp:

Kehren Sie zum SQL Destination Editor zurück und passen Sie Prop_0int an ID:

an

Führen Sie das SSIS-Paket aus. Überprüfen Sie in SSMS, ob die dbo.smartphones-Tabellen erstellt wurden, und prüfen Sie, ob die Daten importiert wurden:

Wenn Sie Fragen oder Probleme haben, können Sie gerne Ihre Kommentare schreiben.

Schlussfolgerungen

Azure Data Lake ist ein spezieller Speicher mit hoher Leistung für den Umgang mit Big Data. Um Daten von lokalen Servern zu Azure zu migrieren, können Sie SSIS verwenden. Dazu benötigen Sie das neue Feature Pack für Azure. Dieses Paket installiert neue Tasks zum Verbinden mit ADLS.

Um über SSIS eine Verbindung zu ADLS herzustellen, haben wir eine AAD-App-Registrierung mit entsprechenden Berechtigungen erstellt.

SSIS ermöglicht das einfache Hochladen der Dateien in ADLS. Sie müssen nur die ADLS-URL und den App-Registrierungsschlüssel und die Anwendungs-ID angeben.

Wir zeigen auch, wie Sie Daten aus ADLS in eine Tabelle im lokalen SQL Server extrahieren.

Referenzen

Weitere Informationen zu SSIS, Data Lake Store und App-Registrierung finden Sie unter den folgenden Links:

  • Einführung in Azure Data Lake
  • Azure Data Lake Store-Verbindungs-Manager
  • Azure Feature Pack für Integrationsdienste (SSIS)
  • Integration von Anwendungen mit Azure Active Directory
  • Task des Azure Data Lake Store-Dateisystems
  • Registrieren Sie Ihre Anwendung bei Ihrem Azure Active Directory-Mandanten