sql >> Database >  >> RDS >> Database

Documenten uploaden naar Azure Data Lake en gegevens exporteren met SSIS

Inleiding

Azure groeit elke dag. Microsoft heeft Azure gemaakt, een Cloud Computing-service die in 2010 is uitgebracht.

Volgens Microsoft gebruikt 80% van de Fortune 500-bedrijven Azure. Ook komt 40% van de Azure-inkomsten van startups en onafhankelijke softwareleveranciers. 33% van de virtuele Azure-machines gebruikt Linux. Microsoft verwacht in 2018 $ 20 miljard te verdienen.

Daarom migreren bedrijven een deel van de data naar Azure en soms alle data.

Azure Data Lake is een speciale opslag om Big Data parallel in Azure te analyseren. Het is geoptimaliseerd voor analyses. U kunt sociale netwerkgegevens, e-mails, documenten, sensorinformatie, geografische informatie en meer opslaan.

Als u alleen gegevens wilt opslaan, is de Azure Blob Storage voldoende. Als u de gegevens wilt analyseren, is Data Lake de beste optie omdat het is ontworpen voor rapporten.

De Data Lake Store wordt meestal geanalyseerd met behulp van Cortana Analytics Suite, Power BI, SSIS is een bekende en populaire tool om gegevens te migreren. In dit nieuwe artikel laten we zien hoe u SSIS kunt gebruiken om gegevens naar Azure te migreren. We laten ook zien hoe u gegevens kunt exporteren uit een .txt-bestand in Azure Data Lake Store naar SQL Server on-premises.

Als je geen ervaring hebt met Azure, maar wel ervaring met SSIS. Dit artikel is voor jou.

We volgen deze stappen om de gegevens in Azure Data Lake te importeren:

  1. Installeer het SSIS Feature Pack voor Azure
    U kunt standaard geen verbinding maken met Azure Data Lake Store. Het is noodzakelijk om het feature pack voor Azure te installeren in de SSIS-projecten.
  1. Maak een Azure Data Lake Store (ADLS) in de Azure Portal
    Als u geen Azure Data Lake Store hebt, moet u een nieuwe maken. We zullen een map maken in deze ADLS en we zullen de gegevens hier importeren uit een lokale map.
  1. Maak een app-registratie
    In de Azure Portal, in de Azure Active Directory (AAD) opties, is er een optie voor app-registratie. We zullen een app-registratie gebruiken om toegang te krijgen tot de ADLS.
  1. Machtigingen toewijzen aan ADLS
    In ADLS in de Data Explorer moet u toegang verlenen tot de app-registratie.
  1. Bestanden exporteren naar ADLS met SSIS
    Met behulp van de ADLS-taak voor SSIS in de SSDT kunt u de gegevens van een lokaal bestand naar SSIS exporteren. Hiervoor heeft u de ADLS-URL, de Application ID van de App-registratie en de Key van de App-registratie nodig.
  1. Controleer de resultaten
    Ga ten slotte in de Azure Portal naar de ADLS, Data Explore en controleer of de bestanden met succes zijn gekopieerd.

Vereisten

De volgende software is vereist voor dit artikel:

  1. SSIS geïnstalleerd (meegeleverd met het SQL Server-installatieprogramma)
  2. SQL Server Data Tools (SSDT) ​​geïnstalleerd
  3. Een Azure-account
  4. Het SSIS Feature Pack voor Azure

Aan de slag

1. Installeer het SSIS Feature Pack voor Azure
Er is een gratis Feature Pack voor SSIS met taken om verbinding te maken met Azure. Het SSIS-functiepakket moet worden geïnstalleerd. Dit pakket bevat verschillende taken om te werken met Big Data in Azure (HDInsight), Azure Blob Storage, Azure Data Lake Store, Azure Data Warehouse en meer:

Het installatieprogramma is een 29 MB. Er is een versie voor 32 en 64 bits.

2. Maak een Azure Data Lake Store (ADLS) in de Azure Portal
Je hebt ook een abonnement op Azure nodig. Er zijn proefversies voor nieuwelingen die deze nieuwe technologie willen leren. We gaan een Azure Data Lake Store maken. Een Data Lake Store is waar u uw gegevens opslaat in Azure voor analyse. Log in op de Azure Portal en ga naar meer services (>) en schrijf in het zoektekstvak Data Lake Store. Selecteer de Data Lake Store:

Ik neem aan dat je nog geen Data Lake Store hebt, dus we zullen een nieuwe maken door op het pictogram +Toevoegen te drukken:

Geef een naam op voor de Data Lake Store. De resourcegroep is bedoeld om meerdere Azure-resources in groepen af ​​te handelen. Locatie is om de locatie die het dichtst bij u in de buurt is aan te geven. U kunt voor consumptie betalen. De prijs ligt rond de 0,39 USD per GB. Hoe meer TB, hoe goedkoper het is. Er zijn ook kosten per lees- en schrijfbewerking (10.000 schrijfbewerkingen per $ 0,05 en 10.000 leesbewerkingen per $ 0,004).

Eenmaal aangemaakt, klik op de Data Lake Store:

Om mappen te maken en bestanden toe te voegen, gaat u naar de Data Explorer:

Maak een Nieuwe map. We zullen bestanden naar deze map uploaden. Wijs een naam toe en druk op OK:

3. Maak een app-registratie
We zullen een app-registratie maken om toegang te krijgen tot Data Lake. In App-registratie registreert u uw applicatie en krijgt u een applicatie-ID en een sleutel toegewezen. Om dat te doen, moeten we naar Meer services>Active Directory:

Ga naar App-registraties:

Voeg een naam toe. Het toepassingstype is Web app/API (de standaardversie). De URL kan elke gewenste URL zijn:



Klik op de applicatie die zojuist is gemaakt:


Als u verbinding wilt maken met Azure Data Lake Store, hebt u de toepassings-ID nodig:

Ga in de App-registratie naar toetsen. Maak een nieuwe sleutel en wijs een vervalduur toe aan de sleutel. Kopieer en plak de waarde ergens. Deze waarde is vereist om verbinding te maken met de Azure Data Lake Store:

Ga naar de Data Lake Store en kopieer de URL in de sectie Overzicht. Deze informatie is ook handig om verbinding te maken via SSIS:


4. Wijs machtigingen toe aan ADLS
We zullen toestemmingen verlenen voor onze app-registraties. Deze machtigingen geven toegang tot ADLS.Ga naar de Data Explorer:

Druk op de optie Toegang om de app-registratie toe te voegen:


Druk op +Toevoegen optie om de app-registratie toe te voegen:

Schrijf AppService in het tekstvak en druk op de knop Selecteren:


Lees-, schrijf- en uitvoerrechten toewijzen. U kunt machtigingen toevoegen aan de map en de map en alle kinderen.

U kunt ook toegang, standaardrechten en beide toewijzen:

5. Bestanden exporteren naar ADLS met SSIS
Maak in SSDT een SSIS-project. Als u het functiepakket voor Azure hebt geïnstalleerd, kunt u de Azure Data Lake Store-bestandssysteemtaak zien. Sleep deze taak naar het ontwerpvenster:

Dubbelklik op de Azure Data Lake Store-bestandssysteemtaak. Er zijn 2 mogelijke bewerkingen. Kopiëren vanuit Azure Data Lake (ADL) of kopiëren naar ADL. In dit voorbeeld zullen we van een lokaal bestand naar ADL kopiëren. In de bron gebruiken we de map c:\sql, we zullen enkele lokale bestanden hebben om naar ADL te kopiëren. In AzureDataLakeDirectory gebruiken we de gedeelde map. Deze map is in eerdere stappen gemaakt in ADL Store. De AzureDataLakeConnection wordt later uitgelegd. Live de bestandsverloop (deze optie wordt gebruikt om aan te geven wanneer de bestanden verstrijken):

In AzureDataLakeConnection selecteren we de optie Nieuwe verbinding om een ​​nieuwe te maken:

In de verbinding heb je de ADLS-host nodig. Dit is de URL wanneer u naar de sectie Overzicht van de ADLS in de portal gaat. Bij verificatie gebruiken we een Azure AD-service-identiteit. Deze optie gebruikt de app-registratie die in Azure is gemaakt.

De Client ID is de Application ID van de App Registratie. U kunt deze informatie vinden in het gedeelte App-registratie van de Azure AD.

De geheime sleutel is te vinden in de portal in app-registratie in azure AD in de sleutelsectie. U kunt een sleutel maken en de waarde in deze sectie gebruiken.

Tenantnaam is de naam van het Azure AD-domein (we zullen het Azure Domain uitleggen).

Druk op de testverbinding om te controleren of alles in orde is. Als het goed is, drukt u op OK:

Als u uw domein (naam huurder) niet weet, kunt u dit controleren door in de rechterbovenhoek van de portal te klikken.


U kunt het SSIS-pakket uitvoeren om de gegevens naar ADLS te exporteren. In dit voorbeeld hebben we 3 bestanden in de lokale map.

6. Controleer de resultaten
Als alles in orde is, gaat u in de Azure Portal naar de ADLS en gaat u naar Data Explorer. Ga naar de gedeelde map en controleer de bestanden daar. U kunt de 5 gekopieerde bestanden zien.


Gegevens exporteren van Data Lake naar SQL Server on-premises

In het tweede deel exporteren we gegevens die zijn opgeslagen in Azure Data Lake naar SQL Server on-premises. Een Data Flow-taak slepen en neerzetten:

Dubbelklik op de taak Gegevensstroom en sleep de Azure Data Lake Store-bron en de SQL Server-bestemming. Verbind beide taken. Dubbelklik op Azure Data Lake Store-bron:

Selecteer de ADLS-verbinding die in het eerste deel van het artikel is gemaakt. Geef in het pad het ADLS-pad op (map-/bestandsnaam). In dit scenario is de bestandsindeling tekst en is het scheidingsteken een komma:

In kolommen ziet u de kolommen. Als er geen kolommen zijn. Er worden standaard kolomkoppen gemaakt:

Dubbelklik op de SQL Server-bestemming. Druk op Nieuw om een ​​verbindingsbeheerder te maken:

Maak een nieuwe verbinding. Specificeer de SQL Server-naam, de authenticatie en de database waar u de gegevens wilt opslaan:

Druk in tafel of weergave op Nieuw om een ​​nieuwe tafel te maken:



Standaard heeft u de volgende T-SQL-code:

Wijzig de code om een ​​tabelnaam op te geven en kolomnamen te geven:

CREATE TABLE [smartphones] (

    [ID] int,

    Brand nvarchar(100),

    Version nvarchar(100)

)

Ga naar de Mappings-pagina en wijs Prop_0 toe aan ID, Prop_1 aan Merk, Prop_2 aan Versie:

U krijgt een fout in SQL Server Destination. Dat de kolom niet kan worden ingevoegd vanwege een conversieprobleem. Dit komt omdat Prop_0 een string is en de SQL Server-tabel een geheel getal is:

Sleep de taak Gegevensconversie en maak verbinding tussen Azure Data Lake Store-bron en SQL Server-bestemming:

Dubbelklik op gegevensconversie, selecteer Prop_0 en converteer het gegevenstype naar een vier-byte ondertekend geheel getal [DT_I4] en wijs een alias toe. Gegevensconversie creëert een andere kolom met een ander gegevenstype:

Keer terug naar SQL Destination Editor en match Prop_0int met ID:

Voer het SSIS-pakket uit. Controleer in SSMS of de dbo.smartphones-tabellen zijn gemaakt en controleer of de gegevens zijn geïmporteerd:

Als je vragen of problemen hebt, voel je vrij om je opmerkingen te schrijven.

Conclusies

Azure Data Lake is een speciale opslag met hoge prestaties om Big Data te verwerken. Als u gegevens van lokale servers naar Azure wilt migreren, kunt u SSIS gebruiken. Om dat te doen, hebt u het nieuwe Feature Pack voor Azure nodig. Dit pakket installeert nieuwe taken om verbinding te maken met ADLS.

Om verbinding te maken met ADLS met behulp van SSIS, hebben we een AAD-app-registratie gemaakt met machtigingen ervoor.

Met SSIS kunnen de bestanden eenvoudig naar ADLS worden geüpload. U hoeft alleen de ADLS-URL en de app-registratiesleutel en applicatie-ID op te geven.

We laten ook zien hoe u gegevens uit ADLS kunt extraheren naar een tabel in SQL Server on-premises.

Referenties

Gebruik de volgende links voor meer informatie over SSIS, Data Lake Store en app-registratie:

  • Introductie van Azure Data Lake
  • Azure Data Lake Store-verbindingsbeheer
  • Azure Feature Pack voor Integration Services (SSIS)
  • Toepassingen integreren met Azure Active Directory
  • Taak Azure Data Lake Store-bestandssysteem
  • Registreer uw toepassing bij uw Azure Active Directory-tenant

  1. NIET IN vs NIET BESTAAT

  2. SQLite groeperen op / uren, dagen, weken, jaar tellen

  3. Hoe kan ik mySQL Replace() gebruiken om strings in meerdere records te vervangen?

  4. De top 5 functies die uw SQL Server Database Performance Monitoring Platform moet bieden