Azure Data Factory kullanarak http kaynağından veri taşıma

Not

Bu makale, Data Factory’nin 1. sürümü için geçerlidir. Azure Data Factory hizmetinin geçerli sürümünü kullanıyorsanız bkz. V2'de HTTP bağlayıcısı.

Bu makalede, verileri şirket içi veya bulut HTTP uç noktasından desteklenen havuz veri deposuna taşımak için Azure Data Factory'de Kopyalama Etkinliğinin nasıl kullanılacağı özetlenmektedir. Bu makale, Kopyalama Etkinliğini kullanarak veri taşımaya yönelik genel bir genel bakış sunan Kopyalama Etkinliği'ni kullanarak verileri taşımayı içerir. Makalede, Kopyalama Etkinliği'nin kaynak ve havuz olarak desteklediği veri depoları da listelenir.

Data Factory şu anda yalnızca bir HTTP kaynağından diğer veri depolarına veri taşımayı desteklemektedir. Verileri diğer veri depolarından HTTP hedefine taşımayı desteklemez.

Desteklenen senaryolar ve kimlik doğrulama türleri

HTTP GET veya POST yöntemlerini kullanarak hem buluttan hem de şirket içi HTTP/S uç noktasından veri almak için bu HTTP bağlayıcısını kullanabilirsiniz. Aşağıdaki kimlik doğrulama türleri desteklenir: Anonim, Temel, Özet, Windows ve ClientCertificate. Bu bağlayıcı ile Web tablosu bağlayıcısı arasındaki farka dikkat edin. Web tablosu bağlayıcısı, bir HTML web sayfasından tablo içeriğini ayıklar.

Şirket içi HTTP uç noktasından veri kopyaladığınızda, Veri Yönetimi Ağ Geçidi'ni şirket içi ortama veya Azure VM'sine yüklemeniz gerekir. Veri Yönetimi Ağ Geçidi hakkında bilgi edinmek ve ağ geçidini ayarlama hakkında adım adım yönergeler için bkz. Verileri şirket içi konumlarla bulut arasında taşıma.

Başlarken

Farklı araçlar veya API'ler kullanarak http kaynağından veri taşımak için kopyalama etkinliğine sahip bir işlem hattı oluşturabilirsiniz:

  • İşlem hattı oluşturmanın en kolay yolu, Veri Kopyalama sihirbazını kullanmaktır. Veri Kopyalama sihirbazını kullanarak işlem hattı oluşturma hakkında hızlı bir kılavuz için bkz . Öğretici: Kopyalama sihirbazını kullanarak işlem hattı oluşturma.

  • İşlem hattı oluşturmak için aşağıdaki araçları da kullanabilirsiniz: Visual Studio, Azure PowerShell, Azure Resource Manager şablonu, .NET API veya REST API. Kopyalama etkinliği olan bir işlem hattı oluşturma hakkında adım adım yönergeler için Kopyalama Etkinliği öğreticisine bakın. HTTP kaynağından Azure Blob depolamaya veri kopyalayan JSON örnekleri için bkz. JSON örnekleri.

Bağlı hizmet özellikleri

Aşağıdaki tabloda HTTP bağlı hizmetine özgü JSON öğeleri açıklanmaktadır:

Özellik Açıklama Gerekli
tür tür özelliği Http olarak ayarlanmalıdır. Yes
url Web sunucusunun temel URL'si. Yes
authenticationType Kimlik doğrulama türünü belirtir. İzin verilen değerler Anonim, Temel, Özet, Windows ve ClientCertificate'tir.

Bu kimlik doğrulama türlerine yönelik daha fazla özellik ve JSON örneği için bu makalenin sonraki bölümlerine bakın.
Yes
enableServerCertificateValidation Kaynak bir HTTPS web sunucusuysa sunucu TLS/SSL sertifika doğrulamasının etkinleştirilip etkinleştirilmeymeyeceğini belirtir. HTTPS sunucunuz otomatik olarak imzalanan bir sertifika kullandığında bunu false olarak ayarlayın. No
(varsayılan değer true'dur)
gatewayName Şirket içi HTTP kaynağına bağlanmak için kullanılacak Veri Yönetimi Ağ Geçidi örneğinin adı. Evet, şirket içi HTTP kaynağından veri kopyalanıyorsa
encryptedCredential HTTP uç noktasına erişmek için şifrelenmiş kimlik bilgileri. Kopyalama sihirbazında veya ClickOnce iletişim kutusunu kullanarak kimlik doğrulama bilgilerini yapılandırdığınızda değer otomatik olarak oluşturulur. No
(Yalnızca şirket içi HTTP sunucusundan veri kopyaladığınızda uygulayın)

Şirket içi HTTP bağlayıcısı veri kaynağının kimlik bilgilerini ayarlama hakkında ayrıntılı bilgi için bkz. Veri Yönetimi Gateway kullanarak şirket içi kaynaklar ile bulut arasında veri taşıma.

Temel, Özet veya Windows kimlik doğrulamayı kullanma

authenticationType değerini Temel, Özet veya Windows olarak ayarlayın. Önceki bölümlerde açıklanan genel HTTP bağlayıcısı özelliklerine ek olarak aşağıdaki özellikleri ayarlayın:

Özellik Açıklama Gerekli
userName HTTP uç noktasına erişmek için kullanılacak kullanıcı adı. Yes
password Kullanıcının parolası (kullanıcı adı). Yes

Örnek: Temel, Özet veya Windows kimlik doğrulaması kullanma

{
    "name": "HttpLinkedService",
    "properties":
    {
        "type": "Http",
        "typeProperties":
        {
            "authenticationType": "basic",
            "url" : "https://en.wikipedia.org/wiki/",
            "userName": "user name",
            "password": "password"
        }
    }
}

ClientCertificate kimlik doğrulamayı kullanma

Temel kimlik doğrulamasını kullanmak için authenticationType değerini ClientCertificate olarak ayarlayın. Önceki bölümlerde açıklanan genel HTTP bağlayıcısı özelliklerine ek olarak aşağıdaki özellikleri ayarlayın:

Özellik Açıklama Gerekli
embeddedCertData PFX dosyasının ikili verilerinin Base64 ile kodlanmış içeriği. embeddedCertData veya certThumbprint belirtin
certThumbprint Ağ geçidi makinenizin sertifika deposuna yüklenen sertifikanın parmak izi. Yalnızca şirket içi HTTP kaynağından veri kopyaladığınızda uygulayın. embeddedCertData veya certThumbprint belirtin
password Sertifikayla ilişkili parola. No

Kimlik doğrulaması için certThumbprint kullanıyorsanız ve sertifika yerel bilgisayarın kişisel deposunda yüklüyse ağ geçidi hizmetine okuma izinleri verin:

  1. Microsoft Yönetim Konsolu'nu (MMC) açın. Yerel Bilgisayarı hedefleyen Sertifikalar ek bileşenini ekleyin.
  2. SertifikalarPersonal'ı> genişletin ve ardından Sertifikalar'ı seçin.
  3. Kişisel mağazadan sertifikaya sağ tıklayın ve ardından Tüm Görevler>Özel Anahtarları Yönet'i seçin.
  4. Güvenlik sekmesinde, sertifikaya okuma erişimi olan Veri Yönetimi Ağ Geçidi Ana Bilgisayar Hizmeti'nin çalıştığı kullanıcı hesabını ekleyin.

Örnek: İstemci sertifikası kullanma

Bu bağlı hizmet, veri fabrikanızı bir şirket içi HTTP web sunucusuna bağlar. Veri Yönetimi Gateway'in yüklü olduğu makinede yüklü bir istemci sertifikası kullanır.

{
    "name": "HttpLinkedService",
    "properties":
    {
        "type": "Http",
        "typeProperties":
        {
            "authenticationType": "ClientCertificate",
            "url": "https://en.wikipedia.org/wiki/",
            "certThumbprint": "thumbprint of certificate",
            "gatewayName": "gateway name"
        }
    }
}

Örnek: Dosyada istemci sertifikası kullanma

Bu bağlı hizmet, veri fabrikanızı bir şirket içi HTTP web sunucusuna bağlar. Veri Yönetimi Gateway'in yüklü olduğu makinede bir istemci sertifika dosyası kullanır.

{
    "name": "HttpLinkedService",
    "properties":
    {
        "type": "Http",
        "typeProperties":
        {
            "authenticationType": "ClientCertificate",
            "url": "https://en.wikipedia.org/wiki/",
            "embeddedCertData": "Base64-encoded cert data",
            "password": "password of cert"
        }
    }
}

Veri kümesi özellikleri

Veri kümesi JSON dosyasının yapı, kullanılabilirlik ve ilke gibi bazı bölümleri tüm veri kümesi türleri (Azure SQL Veritabanı, Azure Blob depolama, Azure Tablo depolama) için benzerdir.

Veri kümelerini tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için bkz. Veri kümeleri oluşturma.

typeProperties bölümü her veri kümesi türü için farklıdır. typeProperties bölümü, veri deposundaki verilerin konumu hakkında bilgi sağlar. Http türündeki bir veri kümesinin typeProperties bölümü aşağıdaki özelliklere sahiptir:

Özellik Açıklama Gerekli
tür Veri kümesinin türüHttp olarak ayarlanmalıdır. Yes
Relativeurl Verileri içeren kaynağın göreli URL'si. Yol belirtilmediğinde, yalnızca bağlı hizmet tanımında belirtilen URL kullanılır.

Dinamik URL oluşturmak için Data Factory işlevlerini ve sistem değişkenlerini kullanabilirsiniz. Örnek: relativeUrl: $$Text.Format('/my/report?month={0:yyyy}-{0:MM}&fmt=csv', SliceStart).
No
requestMethod HTTP yöntemi. İzin verilen değerler GET ve POST değerleridir. No
(varsayılan değer GET'dir)
additionalHeaders Ek HTTP isteği üst bilgileri. No
requestBody HTTP isteğinin gövdesi. No
biçim Verileri ayrıştırmadan http uç noktasından olduğu gibi almak istiyorsanız biçim ayarını atlayın.

Kopyalama sırasında HTTP yanıt içeriğini ayrıştırmak istiyorsanız, şu biçim türleri desteklenir: TextFormat, JsonFormat, AvroFormat, OrcFormat ve ParquetFormat. Daha fazla bilgi için bkz . Metin biçimi, JSON biçimi, Avro biçimi, Ork biçimi ve Parquet biçimi.
No
sıkıştırma Veriler için sıkıştırma türünü ve düzeyini belirtin. Desteklenen türler: GZip, Deflate, BZip2 ve ZipDeflate. Desteklenen düzeyler: En uygun ve en hızlı. Daha fazla bilgi için bkz. Azure Data Factory'da dosya ve sıkıştırma biçimleri. No

Örnek: GET (varsayılan) yöntemini kullanma

{
  "name": "HttpSourceDataInput",
    "properties": {
    "type": "Http",
        "linkedServiceName": "HttpLinkedService",
        "typeProperties": {
          "relativeUrl": "XXX/test.xml",
          "additionalHeaders": "Connection: keep-alive\nUser-Agent: Mozilla/5.0\n"
        },
        "external": true,
        "availability": {
            "frequency": "Hour",
            "interval":  1
        }
    }
}

Örnek: POST yöntemini kullanma

{
    "name": "HttpSourceDataInput",
    "properties": {
        "type": "Http",
        "linkedServiceName": "HttpLinkedService",
        "typeProperties": {
            "relativeUrl": "/XXX/test.xml",
       "requestMethod": "Post",
            "requestBody": "body for POST HTTP request"
        },
        "external": true,
        "availability": {
            "frequency": "Hour",
            "interval":  1
        }
    }
}

Kopyalama Etkinliği özellikleri

Ad, açıklama, giriş ve çıkış tabloları ve ilke gibi özellikler tüm etkinlik türleri için kullanılabilir.

Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için bkz. İşlem hattı oluşturma.

Etkinliğin typeProperties bölümünde bulunan özellikler her etkinlik türüne göre değişir. Kopyalama etkinliği için özellikler, kaynak ve havuz türlerine bağlı olarak değişir.

Şu anda Kopyalama Etkinliği'ndeki kaynak HttpSource türünde olduğunda aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
httpRequestTimeout Yanıt almak için HTTP isteğinin zaman aşımı ( TimeSpan değeri). Yanıt verilerini okumak için zaman aşımı değil, yanıt almak için zaman aşımıdır. No
(varsayılan değer: 00:01:40)

Desteklenen dosya ve sıkıştırma biçimleri

Daha fazla bilgi için bkz. Azure Data Factory'de dosya ve sıkıştırma biçimleri.

JSON örnekleri

Aşağıdaki örnekler, Visual Studio veyaAzure PowerShell kullanarak işlem hattı oluşturmak için kullanabileceğiniz örnek JSON tanımları sağlar. Örneklerde, bir HTTP kaynağından Azure Blob depolamaya veri kopyalama gösterilmektedir. Ancak veriler, Azure Data Factory'da Kopyalama Etkinliği kullanılarak desteklenen havuzlardan herhangi birine doğrudan kaynaklardan kopyalanabilir.

Örnek: HTTP kaynağından Azure Blob depolamaya veri kopyalama

Bu örneğin Data Factory çözümü aşağıdaki Data Factory varlıklarını içerir:

Örnek, http kaynağındaki verileri saatte bir Azure blob'a kopyalar. Bu örneklerde kullanılan JSON özellikleri, örnekleri izleyen bölümlerde açıklanmıştır.

HTTP bağlı hizmeti

Bu örnekte anonim kimlik doğrulaması ile HTTP bağlı hizmeti gerçekleştirilir. Kullanabileceğiniz farklı kimlik doğrulaması türleri için bkz. HTTP bağlı hizmeti .

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

Azure depolama bağlı hizmeti

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

HTTP giriş veri kümesi

External değerini true olarak ayarlamak, Data Factory hizmetine veri kümesinin veri fabrikasının dışında olduğunu ve veri fabrikasındaki bir etkinlik tarafından üretilemediğini bildirir.

{
  "name": "HttpSourceDataInput",
    "properties": {
    "type": "Http",
        "linkedServiceName": "HttpLinkedService",
        "typeProperties": {
            "relativeUrl": "$$Text.Format('/my/report?month={0:yyyy}-{0:MM}&fmt=csv', SliceStart)",
        "additionalHeaders": "Connection: keep-alive\nUser-Agent: Mozilla/5.0\n"
    },
        "external": true,
        "availability": {
            "frequency": "Hour",
            "interval":  1
        }
    }
}

Azure blob çıktı veri kümesi

Veriler saatte bir yeni bir bloba yazılır (sıklık: saat, aralık: 1).

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

Kopyalama etkinliği kullanan işlem hattı

İşlem hattı, giriş ve çıkış veri kümelerini kullanacak şekilde yapılandırılmış bir kopyalama etkinliği içerir. Kopyalama etkinliği saatte bir çalışacak şekilde zamanlanır. İşlem hattı JSON tanımında kaynak türü HttpSource , havuz türü ise BlobSink olarak ayarlanır.

HttpSource'un desteklediği özelliklerin listesi için bkz. HttpSource.

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

Not

Kaynak veri kümesindeki sütunları havuz veri kümesindeki sütunlara eşlemek için bkz. Azure Data Factory'da veri kümesi sütunlarını eşleme.

Performans ve ayar

Azure Data Factory ve bunu iyileştirmenin çeşitli yollarında veri taşıma (Kopyalama Etkinliği) performansını etkileyen önemli faktörler hakkında bilgi edinmek için Kopyalama Etkinliği performansı ve ayarlama kılavuzuna bakın.