Mover dados de uma fonte de tabela Web usando Azure Data Factory

Nota

Este artigo aplica-se à versão 1 do Data Factory. Se estiver a utilizar a versão atual do serviço Data Factory, consulte o conector da tabela Web em V2.

Este artigo descreve como utilizar a Atividade de Cópia na Fábrica de Dados Azure para mover dados de uma tabela numa página Web para uma loja de dados de lavatórios suportados. Este artigo baseia-se no artigo de atividades de movimento de dados que apresenta uma visão geral do movimento de dados com a atividade de cópia e a lista de lojas de dados suportadas como fontes/pias.

Atualmente, a fábrica de dados suporta apenas a transferência de dados de uma tabela Web para outras lojas de dados, mas não a transferência de dados de outras lojas de dados para um destino de tabela Web.

Importante

Atualmente, este conector Web suporta apenas a extração de conteúdo de tabela de uma página HTML. Para obter dados de um ponto final HTTP/s, utilize o conector HTTP.

Pré-requisitos

Para utilizar este conector de mesa Web, é necessário configurar um Tempo de Execução de Integração Auto-hospedado (também conhecido como Data Management Gateway) e configurar a gatewayName propriedade no serviço ligado à pia. Por exemplo, para copiar da tabela Web para o armazenamento Azure Blob, configurar o serviço Azure Armazenamento ligado como o seguinte:

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

Introdução

Pode criar um pipeline com uma atividade de cópia que move dados de uma loja de dados cassandra no local utilizando diferentes ferramentas/APIs.

  • A forma mais fácil de criar um oleoduto é utilizar o Copy Wizard. Ver Tutorial: Criar um pipeline utilizando o Copy Wizard para uma rápida passagem pela criação de um pipeline utilizando o assistente de dados Copy.
  • Também pode utilizar as seguintes ferramentas para criar um pipeline: Visual Studio, Azure PowerShell, modelo de Gestor de Recursos Azure, .NET API e REST API. Consulte o tutorial de atividade de cópia para obter instruções passo a passo para criar um oleoduto com uma atividade de cópia.

Quer utilize as ferramentas ou APIs, executa os seguintes passos para criar um pipeline que transfere dados de uma loja de dados de origem para uma loja de dados de lavatório:

  1. Crie serviços ligados para ligar as lojas de dados de entrada e saída à sua fábrica de dados.
  2. Crie conjuntos de dados para representar dados de entrada e saída para a operação de cópia.
  3. Crie um pipeline com uma atividade de cópia que leva um conjunto de dados como entrada e um conjunto de dados como uma saída.

Quando utiliza o assistente, as definições de JSON para estas entidades da Data Factory (serviços ligados, conjuntos de dados e o pipeline) são automaticamente criadas para si. Quando utiliza ferramentas/APIs (exceto.NET API), define estas entidades da Data Factory utilizando o formato JSON. Para uma amostra com definições JSON para entidades da Data Factory que são usadas para copiar dados de uma tabela web, consulte o exemplo JSON: Copiar dados da tabela Web para a secção Azure Blob deste artigo.

As seguintes secções fornecem detalhes sobre as propriedades JSON que são usadas para definir entidades da Data Factory específicas de uma tabela Web:

Propriedades de serviço ligadas

A tabela seguinte fornece descrição para elementos JSON específicos do serviço ligado à Web.

Propriedade Descrição Obrigatório
tipo A propriedade tipo deve ser definida para: Web Yes
Url URL para a fonte web Yes
authenticationType Anónimo. Yes

Utilização da autenticação anónima

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

Dataset properties (Propriedades do conjunto de dados)

Para obter uma lista completa de secções & propriedades disponíveis para definir conjuntos de dados, consulte o artigo Criar conjuntos de dados. Secções como estrutura, disponibilidade e política de um conjunto de dados JSON são semelhantes para todos os tipos de conjunto de dados (Azure SQL, Azure blob, tabela Azure, etc.).

A secção typeProperties é diferente para cada tipo de conjunto de dados e fornece informações sobre a localização dos dados na loja de dados. A secção de tipos de direitos para conjunto de dados do tipo WebTable tem as seguintes propriedades

Propriedade Descrição Obrigatório
tipo tipo do conjunto de dados. deve ser definido para WebTable Yes
caminho Um URL relativo ao recurso que contém a tabela. N.º Quando o caminho não é especificado, apenas é utilizado o URL especificado na definição de serviço ligada.
índice O índice da tabela no recurso. Consulte o índice de uma tabela numa secção de página HTML para obter o índice de uma tabela numa página HTML. Yes

Exemplo:

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

Propriedades da atividade Copy

Para obter uma lista completa das secções & propriedades disponíveis para definir atividades, consulte o artigo Criar Pipelines. Propriedades como nome, descrição, tabelas de entrada e saída, e a política estão disponíveis para todos os tipos de atividades.

Enquanto que as propriedades disponíveis na secção de tipoproperties da atividade variam com cada tipo de atividade. Para a atividade copy, variam dependendo dos tipos de fontes e pias.

Atualmente, quando a origem na atividade de cópia é do tipo WebSource, não são suportadas propriedades adicionais.

Exemplo JSON: Copiar dados da tabela Web para Azure Blob

A seguinte amostra mostra:

  1. Um serviço ligado do tipo Web.
  2. Um serviço ligado do tipo AzureStorage.
  3. Um conjunto de dados de entrada do tipo WebTable.
  4. Um conjunto de dados de saída do tipo AzureBlob.
  5. Um pipeline com Copy Activity que utiliza WebSource e BlobSink.

A amostra copia dados de uma tabela web para uma bolha Azure a cada hora. As propriedades JSON utilizadas nestas amostras são descritas em secções que seguem as amostras.

A amostra que se segue mostra como copiar dados de uma tabela Web para uma bolha Azure. No entanto, os dados podem ser copiados diretamente para qualquer um dos lavatórios indicados no artigo de Atividades de Movimento de Dados, utilizando a Atividade de Cópia na Fábrica de Dados Azure.

Serviço ligado à web Este exemplo utiliza o serviço ligado à Web com autenticação anónima. Consulte a secção de serviços ligado à Web para diferentes tipos de autenticação que pode utilizar.

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

Serviço ligado do Storage do Azure

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

Conjunto de dados de entrada WebTable A definição externa a verdadeira informa o serviço Data Factory de que o conjunto de dados é externo à fábrica de dados e não é produzido por uma atividade na fábrica de dados.

Nota

Consulte o índice de uma tabela numa secção de página HTML para obter o índice de uma tabela numa página 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
        }
    }
}

Conjunto de dados dos Blobs do Azure

Os dados são escritos para uma nova bolha a cada hora (frequência: hora, intervalo: 1).

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

Pipeline com atividade de Copy

O pipeline contém uma Atividade de Cópia que está configurada para utilizar os conjuntos de dados de entrada e saída e está programado para ser executado a cada hora. Na definição JSON do gasoduto, o tipo de origem é definido para WebSource e o tipo de pia é definido para BlobSink.

Consulte as propriedades do tipo WebSource para a lista de propriedades suportadas pelo 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"
        }
      }
      ]
   }
}

Obtenha o índice de uma tabela numa página HTML

  1. Lançar Excel 2016 e mudar para o separador Dados.

  2. Clique em Nova Consulta na barra de ferramentas, aponte para Outras Fontes e clique na Web.

    Menu de consulta de energia

  3. Na caixa de diálogo Da Web, introduza o URL que utilizaria no serviço ligado JSON (por exemplo: https://en.wikipedia.org/wiki/) juntamente com o caminho que especificaria para o conjunto de dados (por exemplo: AFI%27s_100_Years... 100_Movies), e clique OK.

    Do diálogo web

    URL utilizado neste exemplo: https://en.wikipedia.org/wiki/AFI%27s_100_Years...100_Movies

  4. Se vir a caixa de diálogo de conteúdo do Access Web, selecione o URL certo, a autenticação e clique Ligação.

    Aceder caixa de diálogo de conteúdo web

  5. Clique num item de tabela na vista da árvore para ver o conteúdo da tabela e, em seguida, clique em Editar o botão De editar na parte inferior.

    caixa de diálogo Navegador

  6. Na janela 'Editor de Consulta', clique no botão Editor Avançado na barra de ferramentas.

    Botão de editor avançado

  7. Na caixa de diálogo do Editor Avançado, o número ao lado de "Source" é o índice.

    Editor Avançado - Índice

Se estiver a utilizar Excel 2013, utilize a Microsoft Power Query para obter Excel para obter o índice. Consulte Ligação para obter mais detalhes sobre um artigo de página web. Os passos são semelhantes se estiver a utilizar o Microsoft Power BI para desktop.

Nota

Para mapear colunas de conjunto de dados de origem para colunas a partir do conjunto de dados da pia, consulte as colunas de conjunto de dados de mapeamento na Azure Data Factory.

Performance e Afinação

Consulte copy Activity Performance & Guia de Afinação para conhecer os fatores-chave que impactam o desempenho do movimento de dados (Copy Activity) na Azure Data Factory e várias formas de otimizá-lo.