Azure Data Factory veya Azure Synapse Analytics kullanarak HTTP uç noktasından veri kopyalama

ŞUNLARA UYGULANIR: Azure Data Factory Azure Synapse Analytics

İpucu

Microsoft Fabric'daki Data Factory, daha basit bir mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip yeni nesil Azure Data Factory. Veri tümleştirmeyi yeni kullanmaya başladıysanız Fabric Data Factory ile başlayın. Mevcut ADF iş yükleri veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltebilir.

Bu makalede, http uç noktasından veri kopyalamak için Azure Data Factory ve Azure Synapse kopyalama etkinliğinin nasıl kullanılacağı özetlenmiştir. Makale, Kopyalama Etkinliği'ne genel bir genel bakış sunan Kopyalama Etkinliği üzerine derlenmektedir.

Bu HTTP bağlayıcısı, REST bağlayıcısı ve Web tablosu bağlayıcısı arasındaki fark şunlardır:

  • REST bağlayıcısı özellikle RESTful API'lerinden veri kopyalamayı destekler;
  • HTTP bağlayıcısı , herhangi bir HTTP uç noktasından veri almak için geneldir; örneğin dosyayı indirmek için. REST bağlayıcısı kullanılabilir duruma gelmeden önce, REST bağlayıcısı ile karşılaştırıldığında desteklenen ancak daha az işlevsel olan RESTful API'lerinden veri kopyalamak için HTTP bağlayıcısını kullanabilirsiniz.
  • Web tablosu bağlayıcısı, bir HTML web sayfasından tablo içeriğini ayıklar.

Desteklenen özellikler

Bu HTTP bağlayıcısı aşağıdaki özellikler için desteklenir:

Desteklenen özellikler Kızılötesi
Kopyalama etkinliği (kaynak/-) (1) (2)
Arama etkinliği (1) (2)

(1) Azure tümleştirme çalışma zamanı (2) Yerel barındırılan tümleştirme çalışma zamanı

Kaynak/havuz olarak desteklenen veri depolarının listesi için bkz . Desteklenen veri depoları.

Bu HTTP bağlayıcısını kullanarak:

  • HTTP GET veya POST yöntemlerini kullanarak bir HTTP/S uç noktasından veri alın.
  • Aşağıdaki kimlik doğrulamalarından birini kullanarak verileri alın: Anonymous, Basic, Digest, Windows veya ClientCertificate.
  • HTTP yanıtını olduğu gibi kopyalayın veya desteklenen dosya biçimlerini ve sıkıştırma codec'lerini kullanarak ayrıştırın.

İpucu

HTTP bağlayıcısını yapılandırmadan önce veri alma için bir HTTP isteğini test etmek için üst bilgi ve gövde gereksinimleri için API belirtimi hakkında bilgi edinin. Doğrulamak için Visual Studio, PowerShell'in Invoke-RestMethod veya web tarayıcısı gibi araçları kullanabilirsiniz.

Önkoşullar

Veri deponuz bir yerel ağ, Azure sanal ağ veya Amazon Sanal Özel Bulut içinde bulunuyorsa, ona bağlanmak için kendinden barındırılan bir tümleştirme çalışma zamanı yapılandırmanız gerekir.

Veri deponuz yönetilen bir bulut veri hizmetiyse Azure Integration Runtime kullanabilirsiniz. Erişim, güvenlik duvarı kurallarında onaylanan IP'ler ile sınırlıysa, izin verme listesine Azure Integration Runtime IP ekleyebilirsiniz.

Şirket içi ağa erişmek için, şirket içinde barındırılan tümleştirme çalışma zamanı yüklemeden ve yapılandırmadan Azure Data Factory yönetilen sanal ağ tümleştirme çalışma zamanı özelliğini de kullanabilirsiniz.

Data Factory tarafından desteklenen ağ güvenlik mekanizmaları ve seçenekleri hakkında daha fazla bilgi için bkz . Veri erişim stratejileri.

Kullanmaya başlayın

Kopyalama etkinliğini bir işlem hattıyla gerçekleştirmek için aşağıdaki araçlardan veya SDK'lardan birini kullanabilirsiniz:

Kullanıcı arabirimini kullanarak HTTP kaynağına bağlı hizmet oluşturma

Azure portalı kullanıcı arabiriminde bir HTTP kaynağına bağlı hizmet oluşturmak için aşağıdaki adımları kullanın.

  1. Azure Data Factory veya Synapse çalışma alanınızdaki Yönet sekmesine göz atın ve Bağlı Hizmetler'i seçin, ardından Yeni'ye tıklayın:

    Azure Data Factory UI ile yeni bir bağlı hizmet oluşturma ekranının ekran görüntüsü.

  2. HTTP araması yapın ve HTTP bağlayıcısını seçin.

    HTTP bağlayıcısının ekran görüntüsü.

  3. Hizmet ayrıntılarını yapılandırın, bağlantıyı test edin ve yeni bağlı hizmeti oluşturun.

    HTTP bağlı hizmetinin yapılandırmasının ekran görüntüsü.

Bağlayıcı yapılandırma ayrıntıları

Aşağıdaki bölümlerde, HTTP bağlayıcısına özgü varlıkları tanımlamak için kullanabileceğiniz özelliklerle ilgili ayrıntılar sağlanır.

Bağlı hizmet özellikleri

HTTP bağlı hizmeti için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tip tür özelliği HttpServer olarak ayarlanmalıdır. Yes
url Web sunucusunun temel URL'si. Yes
sunucuSertifikaDoğrulamasıEtkinleştir BIR HTTP uç noktasına bağlanırken sunucu TLS/SSL sertifika doğrulamasını etkinleştirip etkinleştiremeyeceğinizi belirtin. HTTPS sunucunuz otomatik olarak imzalanan bir sertifika kullanıyorsa, bu özelliği false olarak ayarlayın. Hayır
(varsayılan değer true'dur)
kimlik doğrulama türü Kimlik doğrulama türünü belirtir. İzin verilen değerler Anonymous, Basic, Digest, Windows ve ClientCertificate. authHeader özelliğinde ayrıca kimlik doğrulama üst bilgilerini yapılandırabilirsiniz. Daha fazla özellik için bu tabloyu izleyen bölümlere ve bu kimlik doğrulama türleri için JSON örneklerine bakın. Yes
authHeaders Kimlik doğrulaması için ek HTTP istek üstbilgileri.
Örneğin, API anahtarı kimlik doğrulamasını kullanmak için kimlik doğrulama türünü "Anonim" olarak seçebilir ve üst bilgide API anahtarı belirtebilirsiniz.
Hayır
connectVia Veri deposuna bağlanmak için kullanılacak Integration Runtime. Önkoşullar bölümünden daha fazla bilgi edinin. Belirtilmezse, varsayılan Azure Integration Runtime kullanılır. Hayır

Temel, Özet veya Windows kimlik doğrulama kullanma

authenticationType özelliğini Basic, Digest veya Windows olarak ayarlayın. Önceki bölümde açıklanan genel özelliklere ek olarak aşağıdaki özellikleri belirtin:

Özellik Açıklama Gerekli
userName HTTP uç noktasına erişmek için kullanılacak kullanıcı adı. Yes
şifre Kullanıcının parolası ( userName değeri). Güvenli bir şekilde depolamak için bu alanı SecureString türü olarak işaretleyin. Azure Key Vault'ta depolanan bir gizli anahtara da başvurabilirsiniz. Yes

Örnek

{
    "name": "HttpLinkedService",
    "properties": {
        "type": "HttpServer",
        "typeProperties": {
            "authenticationType": "Basic",
            "url" : "<HTTP endpoint>",
            "userName": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

ClientCertificate kimlik doğrulamayı kullanma

ClientCertificate kimlik doğrulamasını kullanmak için authenticationType özelliğini ClientCertificate olarak ayarlayın. Önceki bölümde açıklanan genel özelliklere ek olarak aşağıdaki özellikleri belirtin:

Özellik Açıklama Gerekli
embeddedCertData Base64 ile kodlanmış sertifika verileri. embeddedCertData veya certThumbprint belirtin.
sertifikaParmakİzi Kendi kendine barındırılan Integration Runtime makinenizin sertifika mağazasında yüklü olan sertifikanın parmak izi. Yalnızca yerel olarak barındırılan Integration Runtime türü connectVia özelliğinde belirtildiğinde geçerlidir. embeddedCertData veya certThumbprint belirtin.
şifre Sertifikayla ilişkili parola. Güvenli bir şekilde depolamak için bu alanı SecureString türü olarak işaretleyin. Azure Key Vault'ta depolanan bir gizli anahtara da başvurabilirsiniz. Hayır

Kimlik doğrulama için certThumbprint kullanıyorsanız ve sertifika yerel bilgisayarın kişisel deposunda yüklüyse, kendinden barındırılan Integration Runtime'a okuma izinleri verin:

  1. Microsoft Management Console (MMC) açın. Yerel Bilgisayarı hedefleyen Sertifikalar ek bileşenini ekleyin.
  2. Kişisel Sertifikalar'ı>genişletin ve ardından Sertifikalar'ı seçin.
  3. Kişisel depodan sertifikaya sağ tıklayın ve ardından Tüm Görevler>Özel Anahtarları Yönet seçeneğini seçin.
  4. Güvenlik sekmesinde, sertifikaya okuma erişimiyle Integration Runtime Ana Bilgisayar Hizmeti'nin (DIAHostService) çalıştığı kullanıcı hesabını ekleyin.
  5. HTTP bağlayıcısı yalnızca güvenilen sertifikaları yükler. Kendi kendine imzalanan veya entegre olmayan bir CA tarafından verilmiş bir sertifika kullanıyorsanız, güveni sağlamak için sertifikanın aşağıdaki depolardan birine de yüklenmesi gerekir:
    • Güvenilir Kişiler
    • Üçüncü Taraf Kök Sertifika Yetkilileri
    • Güvenilen Kök Sertifikasyon Yetkilileri

Örnek 1: certThumbprint kullanma

{
    "name": "HttpLinkedService",
    "properties": {
        "type": "HttpServer",
        "typeProperties": {
            "authenticationType": "ClientCertificate",
            "url": "<HTTP endpoint>",
            "certThumbprint": "<thumbprint of certificate>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek 2: embeddedCertData kullanma

{
    "name": "HttpLinkedService",
    "properties": {
        "type": "HttpServer",
        "typeProperties": {
            "authenticationType": "ClientCertificate",
            "url": "<HTTP endpoint>",
            "embeddedCertData": "<Base64-encoded cert data>",
            "password": {
                "type": "SecureString",
                "value": "password of cert"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Kimlik doğrulama başlıklarını kullanma

Ayrıca, yerleşik kimlik doğrulama türleriyle birlikte kimlik doğrulaması için istek üst bilgilerini yapılandırabilirsiniz.

Örnek: API anahtarı kimlik doğrulaması kullanma

{
    "name": "HttpLinkedService",
    "properties": {
        "type": "HttpServer",
        "typeProperties": {
            "url": "<HTTP endpoint>",
            "authenticationType": "Anonymous",
            "authHeader": {
                "x-api-key": {
                    "type": "SecureString",
                    "value": "<API key>"
                }
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Veri kümesi özellikleri

Veri kümelerini tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için Veri kümeleri makalesine bakın.

Azure Data Factory aşağıdaki dosya biçimlerini destekler. Biçim tabanlı ayarlar için her makaleye bakın.

Biçim tabanlı veri kümesindeki ayarlar altında location HTTP için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tip veri kümesinde altındaki type özelliği location HttpServerLocation olarak ayarlanmalıdır. Yes
relativeUrl Verileri içeren kaynağın göreli URL'si. HTTP bağlayıcısı, birleşik URL'den veri kopyalar: [URL specified in linked service][relative URL specified in dataset]. Hayır

Not

Desteklenen HTTP isteği yük boyutu yaklaşık 500 KB'tır. Web uç noktanıza geçirmek istediğiniz yük boyutu 500 KB'tan büyükse yükü daha küçük parçalar halinde toplu işleyebilirsiniz.

Örnek:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<HTTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "HttpServerLocation",
                "relativeUrl": "<relative url>"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Kopyalama Etkinliği özellikleri

Bu bölüm, HTTP kaynağının desteklediği özelliklerin listesini sağlar.

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

Kaynak olarak HTTP

Azure Data Factory aşağıdaki dosya biçimlerini destekler. Biçim tabanlı ayarlar için her makaleye bakın.

Biçim tabanlı kopyalama kaynağındaki ayarlar altında storeSettings HTTP için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tip altındaki storeSettings tür özelliği HttpReadSettings olarak ayarlanmalıdır. Yes
requestMethod HTTP yöntemi.
İzin verilen değerler Get (varsayılan) ve Post değerleridir.
Hayır
ek başlıklar Ek HTTP isteği başlıkları. Hayır
requestBody HTTP isteğinin gövdesi. Hayır
HTTP İstek Zaman Aşımı Yanıt almak için HTTP isteğinin yanıt zaman aşımı (TimeSpan değeri). Bu değer, yanıt verilerini okumak için zaman aşımı değil, yanıt almak için zaman aşımıdır. Varsayılan değer 00:01:40'tır. Hayır
Maksimum Eşzamanlı Bağlantılar Etkinlik çalıştırması sırasında veri deposuna kurulan eş zamanlı bağlantıların üst sınırı. Yalnızca eşzamanlı bağlantıları sınırlamak istediğinizde bir değer belirtin. Hayır

Örnek:

"activities":[
    {
        "name": "CopyFromHTTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "HttpReadSettings",
                    "requestMethod": "Post",
                    "additionalHeaders": "<header key: header value>\n<header key: header value>\n",
                    "requestBody": "<body for POST HTTP request>"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Arama etkinliği özellikleri

Özellikler hakkında ayrıntılı bilgi edinmek için Arama etkinliği'ne bakın.

Eski modeller

Not

Aşağıdaki modeller geriye dönük uyumluluk için olduğu gibi desteklenmektedir. İleride yukarıdaki bölümlerde bahsedilen yeni modeli kullanmanız önerilir ve yazma kullanıcı arabirimi yeni modeli oluşturmaya geçti.

Eski veri kümesi modeli

Özellik Açıklama Gerekli
Tip Veri kümesinin type özelliği HttpFile olarak ayarlanmalıdır. Yes
relativeUrl Verileri içeren kaynağın göreli URL'si. Bu özellik belirtilmediğinde, yalnızca bağlı hizmet tanımında belirtilen URL kullanılır. Hayır
requestMethod HTTP yöntemi. İzin verilen değerler Get (varsayılan) ve Post değerleridir. Hayır
ek başlıklar Ek HTTP isteği başlıkları. Hayır
requestBody HTTP isteğinin gövdesi. Hayır
format VERILERI ayrıştırmadan HTTP uç noktasından olduğu gibi almak ve ardından verileri dosya tabanlı bir depoya kopyalamak istiyorsanız, hem giriş hem de çıkış veri kümesi tanımlarında biçim bölümünü atlayın.

Kopyalama sırasında HTTP yanıt içeriğini ayrıştırmak istiyorsanız, şu dosya biçimi türleri desteklenir: TextFormat, JsonFormat, AvroFormat, OrcFormat ve ParquetFormat. Biçim'in altında type özelliğini bu değerlerden birine ayarlayın. Daha fazla bilgi için bkz . JSON biçimi, Metin biçimi, Avro biçimi, Ork biçimi ve Parquet biçimi.
Hayır
sıkıştırma Verilerin sıkıştırma türünü ve düzeyini belirtin. Daha fazla bilgi için bkz . Desteklenen dosya biçimleri ve sıkıştırma codec'leri.

Desteklenen türler: GZip, Deflate, BZip2 ve ZipDeflate.
Desteklenen düzeyler: En uygun ve en hızlı.
Hayır

Not

Desteklenen HTTP isteği yük boyutu yaklaşık 500 KB'tır. Web uç noktanıza geçirmek istediğiniz yük boyutu 500 KB'tan büyükse yükü daha küçük parçalar halinde toplu işleyebilirsiniz.

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

{
    "name": "HttpSourceDataInput",
    "properties": {
        "type": "HttpFile",
        "linkedServiceName": {
            "referenceName": "<HTTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "relativeUrl": "<relative url>",
            "additionalHeaders": "Connection: keep-alive\nUser-Agent: Mozilla/5.0\n"
        }
    }
}

Örnek 2: Post yöntemini kullanma

{
    "name": "HttpSourceDataInput",
    "properties": {
        "type": "HttpFile",
        "linkedServiceName": {
            "referenceName": "<HTTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "relativeUrl": "<relative url>",
            "requestMethod": "Post",
            "requestBody": "<body for POST HTTP request>"
        }
    }
}

Eski kopyalama etkinliği kaynak modeli

Özellik Açıklama Gerekli
Tip Kopyalama etkinliği kaynağının type özelliği HttpSource olarak ayarlanmalıdır. Yes
HTTP İstek Zaman Aşımı Yanıt almak için HTTP isteğinin yanıt zaman aşımı (TimeSpan değeri). Bu değer, yanıt verilerini okumak için zaman aşımı değil, yanıt almak için zaman aşımıdır. Varsayılan değer 00:01:40'tır. Hayır

Örnek

"activities":[
    {
        "name": "CopyFromHTTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<HTTP input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "HttpSource",
                "httpRequestTimeout": "00:01:00"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Kopyalama Etkinliği'nin kaynak ve havuz olarak desteklediği veri depolarının listesi için bkz . Desteklenen veri depoları ve biçimleri.