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

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

Bahşiş

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Bu makalede, HTTP uç noktasından veri kopyalamak için Azure Data Factory ve Azure Synapse'de Kopyalama Etkinliği'nin 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 IR
Kopyalama etkinliği (kaynak/-) ① ②
Arama etkinliği ① ②

(1) Azure tümleştirme çalışma zamanı (2) Şirket içinde 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: Anonim, Temel, Özet, 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.

Bahşiş

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 Postman veya web tarayıcısı gibi araçları kullanabilirsiniz.

Önkoşullar

Veri deponuz bir şirket içi ağ, Azure sanal ağı veya Amazon Sanal Özel Bulut içinde bulunuyorsa, şirket içinde barındırılan tümleştirme çalışma zamanını buna bağlanmak için 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 Azure Integration Runtime IP'lerini izin verme listesine ekleyebilirsiniz.

Şirket içinde barındırılan tümleştirme çalışma zamanı yüklemeden ve yapılandırmadan şirket içi ağa erişmek için Azure Data Factory'deki 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.

Başlarken

İşlem hattıyla Kopyalama etkinliği 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ızda Yönet sekmesine göz atın ve Bağlı Hizmetler'i seçin, ardından Yeni'ye tıklayın:

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

    Screenshot of the HTTP connector.

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

    Screenshot of configuration for an HTTP linked service.

Bağlan veya 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
type tür özelliği HttpServer olarak ayarlanmalıdır. Evet
url Web sunucusunun temel URL'si. Evet
enableServerCertificateValidation 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. No
(varsayılan değer true'dur)
authenticationType Kimlik doğrulama türünü belirtir. İzin verilen değerler Anonim, Temel, Özet, Windows ve ClientCertificate'tir. Ayrıca özelliğinde authHeader 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. Evet
authHeaders Kimlik doğrulaması için ek HTTP isteği üst bilgileri.
Ö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.
No
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. No

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

authenticationType özelliğini Temel, Özet 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ı. Evet
password 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 diziye de başvurabilirsiniz. Evet

Ö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.
certThumbprint Şirket içinde barındırılan Integration Runtime makinenizin sertifika deposuna yüklenen sertifikanın parmak izi. Yalnızca connectVia özelliğinde şirket içinde barındırılan Integration Runtime türü belirtildiğinde geçerlidir. embeddedCertData veya certThumbprint belirtin.
password 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 diziye de başvurabilirsiniz. No

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

  1. Microsoft Yönetim Konsolu'nu (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 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, Integration Runtime Konak Hizmeti'nin (DIAHostService) çalıştığı kullanıcı hesabını sertifikaya okuma erişimiyle ekleyin.
  5. HTTP bağlayıcısı yalnızca güvenilen sertifikaları yükler. Otomatik olarak imzalanan veya ca tarafından verilmemiş bir sertifika kullanıyorsanız, güveni etkinleştirmek için sertifikanın aşağıdaki depolardan birine de yüklenmesi gerekir:
    • Güvenilen 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 üst bilgilerini 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
type veri kümesinde altındaki type özelliği location HttpServerLocation olarak ayarlanmalıdır. Evet
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]. No

Dekont

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
type altındaki storeSettings type özelliği HttpRead Ayarlar olarak ayarlanmalıdır. Evet
requestMethod HTTP yöntemi.
İzin verilen değerler Get (varsayılan) ve Post değerleridir.
No
additionalHeaders Ek HTTP isteği üst bilgileri. No
requestBody HTTP isteğinin gövdesi. No
httpRequestTimeout Yanıt almak için HTTP isteğinin 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. No
maxConcurrent Bağlan ions 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. No

Ö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

Dekont

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
type Veri kümesinin type özelliği HttpFile olarak ayarlanmalıdır. Evet
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. No
requestMethod HTTP yöntemi. İzin verilen değerler Get (varsayılan) ve Post değerleridir. No
additionalHeaders Ek HTTP isteği üst bilgileri. No
requestBody HTTP isteğinin gövdesi. No
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.
No
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ı.
No

Dekont

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
type Kopyalama etkinliği kaynağının type özelliği HttpSource olarak ayarlanmalıdır. Evet
httpRequestTimeout Yanıt almak için HTTP isteğinin 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. No

Ö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.