Azure Data Factory veya Azure Synapse Analytics kullanarak HTTP uç noktasından veri kopyalama
UYGULANANLAR: Azure Data Factory Azure Synapse Analytics
İpucu
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/-) | (1) (2) |
Arama etkinliği | (1) (2) |
(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.
İ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 ş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.
Kullanmaya başlayın
İşlem hattıyla Kopyalama etkinliği gerçekleştirmek için aşağıdaki araçlardan veya SDK'lardan birini kullanabilirsiniz:
- Veri Kopyalama aracı
- Azure portal
- .NET SDK'sı
- Python SDK'sı
- Azure PowerShell
- The REST API
- Azure Resource Manager şablonu
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.
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:
HTTP araması yapın ve HTTP bağlayıcısını seçin.
Hizmet ayrıntılarını yapılandırın, bağlantıyı test edin ve yeni bağlı hizmeti oluşturun.
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 |
---|---|---|
Tür | tür özelliği HttpServer olarak ayarlanmalıdır. | Yes |
url | Web sunucusunun temel URL'si. | Yes |
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. | Hayır (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. |
Yes |
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. |
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ğ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ı. | Yes |
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. | 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. |
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. | Hayır |
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:
- Microsoft Yönetim Konsolu'nu (MMC) açın. Yerel Bilgisayarı hedefleyen Sertifikalar ek bileşenini ekleyin.
- Kişisel Sertifikalar'ı>genişletin ve ardından Sertifikalar'ı seçin.
- Kişisel mağazadan sertifikaya sağ tıklayın ve ardından Tüm Görevler>Özel Anahtarları Yönet'i seçin.
- Güvenlik sekmesinde, Integration Runtime Konak Hizmeti'nin (DIAHostService) çalıştığı kullanıcı hesabını sertifikaya okuma erişimiyle ekleyin.
- 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ü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 ü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.
- Avro biçimi
- İkili biçim
- Sınırlandırılmış metin biçimi
- Excel biçimi
- JSON biçimi
- ORC biçimi
- Parquet biçimi
- XML biçimi
Biçim tabanlı veri kümesindeki ayarlar altında location
HTTP için aşağıdaki özellikler desteklenir:
Özellik | Açıklama | Gerekli |
---|---|---|
Tür | 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.
- Avro biçimi
- İkili biçim
- Sınırlandırılmış metin biçimi
- Excel biçimi
- JSON biçimi
- ORC biçimi
- Parquet biçimi
- XML biçimi
Biçim tabanlı kopyalama kaynağındaki ayarlar altında storeSettings
HTTP için aşağıdaki özellikler desteklenir:
Özellik | Açıklama | Gerekli |
---|---|---|
Tür | 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 |
additionalHeaders | Ek HTTP isteği üst bilgileri. | Hayır |
requestBody | HTTP isteğinin gövdesi. | Hayır |
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. | Hayır |
maxConcurrentConnections | 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 |
---|---|---|
Tür | 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 |
additionalHeaders | Ek HTTP isteği üst bilgileri. | 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 |
---|---|---|
Tür | Kopyalama etkinliği kaynağının type özelliği HttpSource olarak ayarlanmalıdır. | Yes |
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. | 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>"
}
}
}
]
İlgili içerik
Kopyalama Etkinliği'nin kaynak ve havuz olarak desteklediği veri depolarının listesi için bkz . Desteklenen veri depoları ve biçimleri.