Spostare i dati da un'origine tabella Web con Azure Data Factory

Questo articolo illustra come usare l'attività di copia in Azure Data Factory per spostare dati da una tabella in una pagina Web in un archivio dati sink supportato. Questo articolo si basa sull'articolo relativo alle attività di spostamento dei dati, che offre una panoramica generale dello spostamento dei dati con attività di copia e l'elenco degli archivi dati supportati come origini/sink.

Data Factory supporta attualmente solo lo spostamento di dati da una tabella Web ad altri archivi dati, non da altri archivi dati a una tabella Web.

Importante

Questo connettore Web attualmente supporta soltanto l'estrazione del contenuto della tabella da una pagina HTML. Per recuperare dati da un endpoint HTTP/s, usare invece il connettore HTTP.

Introduzione

È possibile creare una pipeline con l'attività di copia che sposta i dati da un archivio dati Cassandra usando diversi strumenti/API.

  • Il modo più semplice per creare una pipeline è usare la Copia guidata. Vedere Esercitazione: Creare una pipeline usando la Copia guidata per la procedura dettagliata sulla creazione di una pipeline attenendosi alla procedura guidata per copiare i dati.
  • È possibile anche usare gli strumenti seguenti per creare una pipeline: portale di Azure, Visual Studio, Azure PowerShell, modello di Azure Resource Manager, API .NET e API REST. Vedere l'esercitazione sull'attività di copia per le istruzioni dettagliate sulla creazione di una pipeline con un'attività di copia.

Se si usano gli strumenti o le API, eseguire la procedura seguente per creare una pipeline che sposta i dati da un archivio dati di origine a un archivio dati sink:

  1. Creare i servizi collegati per collegare gli archivi di dati di input e output alla data factory.
  2. Creare i set di dati per rappresentare i dati di input e di output per le operazioni di copia.
  3. Creare una pipeline con un'attività di copia che accetti un set di dati come input e un set di dati come output.

Quando si usa la procedura guidata, le definizioni JSON per queste entità di Data Factory (servizi, set di dati e pipeline collegati) vengono create automaticamente. Quando si usano gli strumenti o le API, ad eccezione delle API .NET, usare il formato JSON per definire le entità di Data Factory. Per un esempio con le definizioni JSON per le entità di Data Factory usate per copiare dati da una tabella Web, vedere la sezione Esempio JSON: Copiare dati da una tabella Web a BLOB di Azure di questo articolo.

Nelle sezioni seguenti sono disponibili le informazioni dettagliate sulle proprietà JSON che vengono usate per definire entità della Data Factory specifiche di una tabella Web:

Proprietà del servizio collegato

La tabella seguente contiene le descrizioni degli elementi JSON specifici del servizio collegato Web.

Proprietà Descrizione Obbligatorio
type La proprietà type deve essere impostata su: Web
Url URL dell'origine Web
authenticationType Anonimo.

Uso dell'autenticazione anonima

{
    "name": "web",
    "properties":
    {
        "type": "Web",
        "typeProperties":
        {
            "authenticationType": "Anonymous",
            "url" : "https://en.wikipedia.org/wiki/"
        }
    }
}

Proprietà dei set di dati

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione di set di dati, vedere l'articolo sulla creazione di set di dati. Le sezioni come struttura, disponibilità e criteri di un set di dati JSON sono simili per tutti i tipi di set di dati, ad esempio Azure SQL, BLOB di Azure, tabelle di Azure e così via.

La sezione typeProperties è diversa per ogni tipo di set di dati e contiene informazioni sulla posizione dei dati nell'archivio dati. La sezione typeProperties per il set di dati di tipo WebTable presenta le proprietà seguenti

Proprietà Descrizione Obbligatorio
type Tipo del set di dati. Deve essere impostato su WebTable
path URL relativo della risorsa che contiene la tabella. No. Quando non è specificato alcun percorso, viene usato solo l'URL specificato nella definizione del servizio collegato.
index Indice della tabella nella risorsa. Per i passaggi per ottenere l'indice di una tabella in una pagina HTML, vedere la sezione Ottenere l'indice di una tabella in una pagina HTML .

Esempio:

{
    "name": "WebTableInput",
    "properties": {
        "type": "WebTable",
        "linkedServiceName": "WebLinkedService",
        "typeProperties": {
            "index": 1,
            "path": "AFI's_100_Years...100_Movies"
        },
        "external": true,
        "availability": {
            "frequency": "Hour",
            "interval":  1
        }
    }
}

Proprietà dell'attività di copia

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, fare riferimento all'articolo Creazione di pipeline. Per tutti i tipi di attività sono disponibili proprietà come nome, descrizione, tabelle di input e output e criteri.

Le proprietà disponibili nella sezione typeProperties dell'attività variano invece in base al tipo di attività. Per l'attività di copia variano in base ai tipi di origine e sink.

Quando l'origine nell'attività di copia è di tipo WebSourcenon sono attualmente supportate altre proprietà.

Esempio JSON: Copiare dati da una tabella Web a BLOB di Azure

L'esempio seguente mostra:

  1. Un servizio collegato di tipo Web.
  2. Un servizio collegato di tipo AzureStorage.
  3. Un set di dati di input di tipo WebTable.
  4. Un set di dati di output di tipo AzureBlob.
  5. Una pipeline con attività di copia che usa WebSource e BlobSink.

Nell'esempio i dati vengono copiati da una tabella Web a un BLOB di Azure ogni ora. Le proprietà JSON usate in questi esempi sono descritte nelle sezioni riportate dopo gli esempi.

Questo esempio illustra come copiare dati da una tabella Web a un BLOB di Azure. Tuttavia, i dati possono essere copiati direttamente in uno qualsiasi dei sink indicati nell'articolo Attività di spostamento dei dati , usando l'attività di copia in Azure Data Factory.

Servizio collegato Web : questo esempio usa il servizio collegato Web con l'autenticazione anonima. Per i diversi tipi di autenticazione disponibili, vedere la sezione Servizio collegato Web .

{
    "name": "WebLinkedService",
    "properties":
    {
        "type": "Web",
        "typeProperties":
        {
            "authenticationType": "Anonymous",
            "url" : "https://en.wikipedia.org/wiki/"
        }
    }
}

Servizio collegato Archiviazione di Azure

{
  "name": "AzureStorageLinkedService",
  "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
    }
  }
}

Set di dati di input WebTable Impostando external su true, si comunica al servizio Data Factory che il set di dati è esterno alla data factory e non è prodotto da un'attività al suo interno.

Nota

Per i passaggi per ottenere l'indice di una tabella in una pagina HTML, vedere la sezione Ottenere l'indice di una tabella in una pagina HTML .

{
    "name": "WebTableInput",
    "properties": {
        "type": "WebTable",
        "linkedServiceName": "WebLinkedService",
        "typeProperties": {
            "index": 1,
            "path": "AFI's_100_Years...100_Movies"
        },
        "external": true,
        "availability": {
            "frequency": "Hour",
            "interval":  1
        }
    }
}

Set di dati di output del BLOB di Azure

I dati vengono scritti in un nuovo BLOB ogni ora (frequenza: ora, intervallo: 1).

{
    "name": "AzureBlobOutput",
    "properties":
    {
        "type": "AzureBlob",
        "linkedServiceName": "AzureStorageLinkedService",
        "typeProperties":
        {
            "folderPath": "adfgetstarted/Movies"
        },
        "availability":
        {
            "frequency": "Hour",
            "interval": 1
        }
    }
}

Pipeline con attività di copia

La pipeline contiene un'attività di copia configurata per usare i set di dati di input e output ed è programmata per essere eseguita ogni ora. Nella definizione JSON della pipeline, il tipo source è impostato su WebSource e il tipo sink è impostato su BlobSink.

Per l'elenco delle proprietà supportate da WebSource, vedere le proprietà del tipo WebSource .

{  
    "name":"SamplePipeline",
    "properties":{  
    "start":"2014-06-01T18:00:00",
    "end":"2014-06-01T19:00:00",
    "description":"pipeline with copy activity",
    "activities":[  
      {
        "name": "WebTableToAzureBlob",
        "description": "Copy from a Web table to an Azure blob",
        "type": "Copy",
        "inputs": [
          {
            "name": "WebTableInput"
          }
        ],
        "outputs": [
          {
            "name": "AzureBlobOutput"
          }
        ],
        "typeProperties": {
          "source": {
            "type": "WebSource"
          },
          "sink": {
            "type": "BlobSink"
          }
        },
       "scheduler": {
          "frequency": "Hour",
          "interval": 1
        },
        "policy": {
          "concurrency": 1,
          "executionPriorityOrder": "OldestFirst",
          "retry": 0,
          "timeout": "01:00:00"
        }
      }
      ]
   }
}

Ottenere l'indice di una tabella in una pagina HTML

  1. Avviare Excel 2016 e passare alla scheda Dati.
  2. Fare clic su Nuova query sulla barra degli strumenti, scegliere Da altre origini e fare clic su Da Web.

    Menu di Power Query

  3. Nella finestra di dialogo Da Web immettere l'URL che si intende usare nel servizio collegato JSON, ad esempio https://en.wikipedia.org/wiki/, insieme al percorso specificato per il set di dati, ad esempio AFI%27s_100_Years...100_Movies, e fare clic su OK.

    Finestra di dialogo Da Web

    URL usato in questo esempio: https://en.wikipedia.org/wiki/AFI%27s_100_Years...100_Movies

  4. Se viene visualizzata la finestra di dialogo Accedi a contenuto Web, selezionare l'URL corretto, l'autenticazione e fare clic su Connetti.

    Finestra di dialogo Accedi a contenuto Web

  5. Fare clic su un elemento della tabella nella visualizzazione ad albero per visualizzare il contenuto dalla tabella e quindi fare clic su Modifica nella parte inferiore.

    Finestra di dialogo Strumento di spostamento

  6. Nella finestra Editor di query fare clic sul pulsante Editor avanzato sulla barra degli strumenti.

    Pulsante Editor avanzato

  7. Nella finestra di dialogo Editor avanzato il numero accanto a "Source" è l'indice.

    Editor avanzato - Indice

Se si usa Excel 2013, per ottenere l'indice usare Microsoft Power Query per Excel . Per informazioni dettagliate, vedere l'articolo Connettersi a una pagina Web (Power Query) . I passaggi sono simili se si usa Microsoft Power BI Desktop.

Nota

Per eseguire il mapping dal set di dati di origine alle colonne del set di dati sink, vedere Mapping delle colonne del set di dati in Azure Data Factory.

Ottimizzazione delle prestazioni

Per informazioni sui fattori chiave che influiscono sulle prestazioni dello spostamento dei dati, ovvero dell'attività di copia, in Azure Data Factory e sui vari modi per ottimizzare tali prestazioni, vedere la Guida alle prestazioni delle attività di copia e all'ottimizzazione.