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

Carica documenti in Azure Data Lake ed esporta dati tramite SSIS

Introduzione

Azure cresce ogni giorno. Microsoft ha creato Azure, un servizio di cloud computing rilasciato nel 2010.

Secondo Microsoft, l'80% delle aziende Fortune 500 utilizza Azure. Inoltre, il 40% delle entrate di Azure proviene da startup e fornitori di software indipendenti. Il 33% delle macchine virtuali di Azure usa Linux. Microsoft prevede di guadagnare $ 20 miliardi nel 2018.

Ecco perché le aziende stanno migrando parte dei dati ad Azure e talvolta tutti i dati.

Azure Data Lake è un archivio speciale per analizzare i Big Data in parallelo in Azure. È ottimizzato per l'analisi. Puoi archiviare dati di social network, e-mail, documenti, informazioni sui sensori, informazioni geografiche e altro ancora.

Se si desidera archiviare solo i dati, l'archiviazione BLOB di Azure è sufficiente. Se desideri analizzare i dati, Data Lake è l'opzione migliore perché è progettato per i rapporti.

Il Data Lake Store viene solitamente analizzato utilizzando Cortana Analytics Suite, Power BI, SSIS è uno strumento noto e popolare per la migrazione dei dati. In questo nuovo articolo mostreremo come usare SSIS per migrare i dati in Azure. Mostreremo anche come esportare i dati da un file .txt in Azure Data Lake Store in SQL Server in locale.

Se non hai esperienza in Azure, ma hai esperienza con SSIS. Questo articolo è per te.

Seguiremo questi passaggi per importare i dati in Azure Data Lake:

  1. Installa il pacchetto di funzionalità SSIS per Azure
    Per impostazione predefinita, non è possibile connettersi ad Azure Data Lake Store. È necessario installare il feature pack per Azure nei progetti SSIS.
  1. Crea un Azure Data Lake Store (ADLS) nel portale di Azure
    Se non si dispone di un Azure Data Lake Store, sarà necessario crearne uno nuovo. Creeremo una cartella in questo ADLS e importeremo i dati da una cartella locale qui.
  1. Crea una registrazione per l'app
    Nel portale di Azure, nelle opzioni di Azure Active Directory (AAD), è disponibile un'opzione per la registrazione dell'app. Utilizzeremo una registrazione dell'app per accedere all'ADLS.
  1. Assegna autorizzazioni ad ADLS
    In ADLS in Esplora dati, devi concedere l'accesso alla registrazione dell'app.
  1. Esportazione di file in ADLS con SSIS
    Utilizzando l'attività ADLS per SSIS in SSDT, puoi esportare i dati da un file locale in SSIS. A tal fine, è necessario l'URL ADLS, l'ID applicazione della registrazione dell'app e la chiave della registrazione dell'app.
  1. Verifica i risultati
    Infine, nel Portale di Azure, vai su ADLS, Esplora dati e verifica che i file siano stati copiati correttamente.

Requisiti

Per questo articolo è richiesto il seguente software:

  1. SSIS installato (incluso con il programma di installazione di SQL Server)
  2. Installazione di SQL Server Data Tools (SSDT)
  3. Un account Azure
  4. Il pacchetto di funzionalità SSIS per Azure

Inizia

1. Installa il pacchetto di funzionalità SSIS per Azure
È disponibile un Feature Pack gratuito per SSIS che include attività per la connessione ad Azure. È necessario installare il pacchetto di funzionalità SSIS. Questo pacchetto include diverse attività per lavorare con Big Data in Azure (HDInsight), Archiviazione BLOB di Azure, Azure Data Lake Store, Azure Data Warehouse e altro ancora:

Il programma di installazione è un 29 MB. Esiste una versione per 32 e 64 bit.

2. Crea un Azure Data Lake Store (ADLS) nel portale di Azure
Avrai anche bisogno di un abbonamento ad Azure. Ci sono edizioni di prova per i neofiti che vogliono imparare questa nuova tecnologia. Creeremo un Azure Data Lake Store. Un Data Lake Store è il luogo in cui archivi i tuoi dati in Azure per l'analisi. Accedi al portale di Azure e vai a più servizi (>) e nella casella di testo di ricerca scrivi Data Lake Store. Seleziona il Data Lake Store:

Presumo che tu non abbia ancora un Data Lake Store, quindi ne creeremo uno nuovo premendo l'icona +Aggiungi:

Specificare un nome per Data Lake Store. Il gruppo di risorse deve gestire più risorse di Azure in gruppi. Posizione è specificare la posizione più vicina a te. Puoi pagare per il consumo. Il prezzo è di circa 0,39 USD per GB. Più TB, più è economico. Sono previsti anche addebiti per le operazioni di lettura e scrittura (10.000 operazioni di scrittura per $ 0,05 e 10.000 operazioni di lettura per $ 0,004).

Una volta creato, fai clic su Data Lake Store:

Per creare cartelle e aggiungere file, vai su Esplora dati:

Crea una Nuova cartella. Caricheremo i file in questa cartella. Assegna un nome e premi OK:

3. Crea una registrazione per l'app
Creeremo una registrazione App per accedere a Data Lake. Nella registrazione dell'app, registri la tua applicazione e ti vengono assegnati un ID applicazione e una chiave. Per farlo, dobbiamo andare su Altri servizi>Active Directory:

Vai a Registrazione app:

Aggiungi un nome. Il tipo di applicazione è Web app/API (quella predefinita). L'URL può essere qualsiasi URL a tua preferenza:



Clicca sull'applicazione appena creata:


Per connettersi ad Azure Data Lake Store, è necessario l'ID applicazione:

Nella registrazione dell'app, vai su chiavi. Crea una nuova chiave e assegna una durata di scadenza per la chiave. Copia e incolla il valore da qualche parte. Questo valore sarà necessario per la connessione ad Azure Data Lake Store:

Vai a Data Lake Store e copia l'URL nella sezione Panoramica. Queste informazioni sono utili anche per la connessione tramite SSIS:


4. Assegna autorizzazioni ad ADLS
Concediamo i permessi alle registrazioni delle nostre app. Queste autorizzazioni consentiranno l'accesso ad ADLS.Vai a Esplora dati:

Premi l'opzione Accesso per aggiungere la registrazione dell'app:


Premi +Aggiungi opzione per aggiungere la registrazione dell'app:

Nella casella di testo, scrivi AppService e premi il pulsante Seleziona:


Assegna autorizzazioni di lettura, scrittura ed esecuzione. Puoi aggiungere autorizzazioni alla cartella, alla cartella e a tutti i bambini.

Puoi anche assegnare l'accesso, le autorizzazioni predefinite ed entrambi:

5. Esportazione di file in ADLS con SSIS
In SSDT, crea un progetto SSIS. Se hai installato il feature pack per Azure, potrai vedere l'attività del file system di Azure Data Lake Store. Trascina e rilascia questa attività nel riquadro di progettazione:

Fare doppio clic sull'attività del file system di Azure Data Lake Store. Sono possibili 2 operazioni. Per copiare da Azure Data Lake (ADL) o per copiare in ADL. In questo esempio, copieremo da un file locale in ADL. Nel sorgente utilizzeremo la cartella c:\sql, avremo alcuni file locali da copiare in ADL. In AzureDataLakeDirectory utilizzeremo la cartella condivisa. Questa cartella è stata creata in ADL Store nei passaggi precedenti. AzureDataLakeConnection verrà spiegato più avanti. Vivi la scadenza del file (questa opzione serve per specificare quando scadono i file):

In AzureDataLakeConnection, selezioneremo l'opzione Nuova connessione per crearne una nuova:

Nella connessione, è necessario l'host ADLS. Questo è l'URL quando si passa alla sezione Panoramica dell'ADLS nel portale. Nell'autenticazione utilizzeremo un'identità del servizio Azure AD. Questa opzione usa la registrazione dell'app creata in Azure.

L'ID cliente è l'ID applicazione della registrazione dell'app. Puoi trovare queste informazioni nella sezione Registrazione app di Azure AD.

La chiave segreta è reperibile nel portale in App Registration in Azure AD nella sezione chiave. Puoi creare una chiave e utilizzare il valore in questa sezione.

Il nome del tenant è il nome del dominio Azure AD (spiegheremo il dominio Azure).

Premi la connessione di prova per verificare che tutto sia a posto. Una volta che è a posto, premi OK:

Se non conosci il tuo dominio (Tenant Name), puoi verificare cliccando nella sezione in alto a destra del Portale.


È possibile eseguire il pacchetto SSIS per esportare i dati in ADLS. In questo esempio, abbiamo 3 file nella cartella locale.

6. Verifica i risultati
Se tutto è a posto, nel portale di Azure, vai su ADLS e vai a Esplora dati. Vai alla cartella condivisa e controlla i file lì. Potrai vedere i 5 file copiati.


Esportazione dei dati da Data Lake a SQL Server in locale

Nella seconda parte esporteremo i dati archiviati in Azure Data Lake in SQL Server locale. Trascina e rilascia un'attività Flusso di dati:

Fare doppio clic sull'attività Flusso di dati e trascinare l'origine di Azure Data Lake Store e la destinazione di SQL Server. Collega entrambe le attività. Fare doppio clic su Azure Data Lake Store Origine:

Seleziona la Connessione ADLS creata nella prima parte dell'articolo. Nel percorso, specificare il percorso ADLS (cartella/nome file). In questo scenario il formato del file è testo e il delimitatore è una virgola:

Nelle colonne puoi vedere le colonne. Se non ci sono colonne. Vengono create intestazioni di colonna predefinite:

Fare doppio clic sulla destinazione SQL Server. Premi Nuovo per creare un gestore di connessione:

Crea una nuova connessione. Specificare il nome di SQL Server, l'autenticazione e il database in cui si desidera archiviare i dati:

Nella tabella o nella vista, premi Nuovo per creare una nuova tabella:



Per impostazione predefinita, avrai il seguente codice T-SQL:

Modifica il codice per specificare il nome di una tabella e fornire i nomi di colonna:

CREATE TABLE [smartphones] (

    [ID] int,

    Brand nvarchar(100),

    Version nvarchar(100)

)

Vai alla pagina Mapping e assegna Prop_0 a ID, Prop_1 a Brand, Prop_2 a Version:

Si verificherà un errore nella destinazione di SQL Server. Che la colonna non può essere inserita a causa di un problema di conversione. Questo perché Prop_0 è una stringa e la tabella di SQL Server è un numero intero:

Trascina e rilascia l'attività di conversione dei dati e connettiti tra l'origine di Azure Data Lake Store e la destinazione di SQL Server:

Fare doppio clic sulla conversione dei dati, selezionare Prop_0 e convertire il tipo di dati in un intero con segno a quattro byte [DT_I4] e assegnare un alias. La conversione dei dati crea un'altra colonna con un tipo di dati diverso:

Torna all'editor di destinazione SQL e abbina Prop_0int a ID:

Eseguire il pacchetto SSIS. In SSMS, verifica che le tabelle dbo.smartphones siano state create e controlla se i dati sono stati importati:

Se hai domande o problemi, sentiti libero di scrivere i tuoi commenti.

Conclusioni

Azure Data Lake è uno storage speciale con prestazioni elevate per la gestione dei Big Data. Per migrare i dati dai server locali ad Azure, puoi usare SSIS. Per farlo, è necessario il nuovo Feature Pack per Azure. Questo pacchetto installa nuove attività per la connessione ad ADLS.

Per connetterci ad ADLS tramite SSIS abbiamo creato una registrazione dell'app AAD con autorizzazioni ad essa.

SSIS consente di caricare facilmente i file su ADLS. Devi solo specificare l'URL ADLS, la chiave di registrazione dell'app e l'ID dell'applicazione.

Mostriamo anche come estrarre i dati da ADLS in una tabella in SQL Server in locale.

Riferimenti

Per ulteriori informazioni su SSIS, Data Lake Store e registrazione dell'app, utilizzare i seguenti collegamenti:

  • Presentazione di Azure Data Lake
  • Gestione connessione Azure Data Lake Store
  • Pacchetto funzionalità di Azure per Integration Services (SSIS)
  • Integrazione delle applicazioni con Azure Active Directory
  • Attività del file system di Azure Data Lake Store
  • Registra la tua applicazione con il tenant di Azure Active Directory