Azure Data Factory kullanarak verileri SAP HANA'dan taşıma

Not

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

Bu makalede, şirket içi SAP HANA verileri taşımak için Azure Data Factory kopyalama etkinliğinin nasıl kullanılacağı açıklanmaktadır. Kopyalama etkinliğiyle veri taşımaya genel bir genel bakış sunan Veri Taşıma Etkinlikleri makalesini oluşturur.

Şirket içi SAP HANA veri deposundaki verileri desteklenen herhangi bir havuz veri deposuna kopyalayabilirsiniz. Kopyalama etkinliği tarafından havuz olarak desteklenen veri depolarının listesi için Desteklenen veri depoları tablosuna bakın. Veri fabrikası şu anda verileri yalnızca bir SAP HANA diğer veri depolarına taşımayı destekler, ancak diğer veri depolarından bir SAP HANA taşımak için desteklemez.

Desteklenen sürümler ve yükleme

Bu bağlayıcı, SAP HANA veritabanının herhangi bir sürümünü destekler. SQL sorguları kullanarak HANA bilgi modellerinden (Analiz ve Hesaplama görünümleri gibi) ve Satır/Sütun tablolarından veri kopyalamayı destekler.

SAP HANA örneğine bağlantıyı etkinleştirmek için aşağıdaki bileşenleri yükleyin:

  • Veri Yönetimi Gateway: Data Factory hizmeti, Veri Yönetimi Gateway adlı bir bileşen kullanarak şirket içi veri depolarına (SAP HANA dahil) bağlanmayı destekler. Veri Yönetimi Ağ Geçidi hakkında bilgi edinmek ve ağ geçidini ayarlamaya yönelik adım adım yönergeler için bkz. Verileri şirket içi veri deposu arasında bulut veri deposuna taşıma makalesi. SAP HANA bir Azure IaaS sanal makinesinde (VM) barındırılıyor olsa bile ağ geçidi gereklidir. Ağ geçidi veritabanına bağlanabildiği sürece ağ geçidini veri deposuyla aynı VM'ye veya farklı bir VM'ye yükleyebilirsiniz.
  • Ağ geçidi makinesinde ODBC sürücüsü SAP HANA. SAP HANA ODBC sürücüsünü SAP Software Download Center sayfasından indirebilirsiniz. Windows için client SAP HANA anahtar sözcüğüyle arama yapın.

Başlarken

Farklı araçlar/API'ler kullanarak şirket içi SAP HANA veri deposundan veri taşıyan kopyalama etkinliğine sahip bir işlem hattı oluşturabilirsiniz.

  • İşlem hattı oluşturmanın en kolay yolu 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 ve REST API. Kopyalama etkinliğiyle işlem hattı oluşturmaya yönelik adım adım yönergeler için Kopyalama etkinliği öğreticiye bakın.

İster araçları ister API'leri kullanın, bir kaynak veri deposundan havuz veri deposuna veri taşıyan bir işlem hattı oluşturmak için aşağıdaki adımları gerçekleştirirsiniz:

  1. Giriş ve çıkış veri depolarını veri fabrikanıza bağlamak için bağlı hizmetler oluşturun.
  2. Kopyalama işlemi için giriş ve çıkış verilerini temsil eden veri kümeleri oluşturun.
  3. Veri kümesini giriş ve veri kümesini çıkış olarak alan kopyalama etkinliğine sahip bir işlem hattı oluşturun.

Sihirbazı kullandığınızda, bu Data Factory varlıkları (bağlı hizmetler, veri kümeleri ve işlem hattı) için JSON tanımları sizin için otomatik olarak oluşturulur. Araçları/API'leri (.NET API hariç) kullandığınızda, JSON biçimini kullanarak bu Data Factory varlıklarını tanımlarsınız. Şirket içi SAP HANA verileri kopyalamak için kullanılan Data Factory varlıklarına yönelik JSON tanımlarına sahip bir örnek için bu makalenin JSON örneği: SAP HANA'dan Azure Blob'a veri kopyalama bölümüne bakın.

Aşağıdaki bölümlerde, bir SAP HANA veri deposuna özgü Data Factory varlıklarını tanımlamak için kullanılan JSON özellikleri hakkında ayrıntılar sağlanır:

Bağlı hizmet özellikleri

Aşağıdaki tabloda, bağlı SAP HANA hizmete özgü JSON öğeleri için açıklama sağlanır.

Özellik Açıklama İzin verilen değerler Gerekli
sunucu SAP HANA örneğinin bulunduğu sunucunun adı. Sunucunuz özelleştirilmiş bir bağlantı noktası kullanıyorsa belirtin server:port. string Yes
authenticationType Kimlik doğrulama türü. kullanabilirsiniz. "Temel" veya "Windows" Yes
username SAP sunucusuna erişimi olan kullanıcının adı string Yes
password Kullanıcının parolası. string Yes
gatewayName Data Factory hizmetinin şirket içi SAP HANA örneğine bağlanmak için kullanması gereken ağ geçidinin adı. string Yes
encryptedCredential Şifrelenmiş kimlik bilgisi dizesi. dize No

Veri kümesi özellikleri

Veri kümelerini & tanımlamak için kullanılabilen bölüm özelliklerinin tam listesi için Veri kümeleri oluşturma makalesine bakın. Veri kümesi JSON'un yapısı, kullanılabilirliği ve ilkesi gibi bölümler tüm veri kümesi türleri (Azure SQL, Azure blobu, Azure tablosu vb.) için benzerdir.

typeProperties bölümü her veri kümesi türü için farklıdır ve verilerin veri deposundaki konumu hakkında bilgi sağlar. relationalTable türündeki SAP HANA veri kümesi için desteklenen türe özgü özellik yoktur.

Kopyalama etkinliğinin özellikleri

Etkinlikleri tanımlamak için kullanılabilen bölüm & özelliklerinin tam listesi için Pipelines oluşturma makalesine bakın. Ad, açıklama, giriş ve çıkış tabloları gibi özellikler, tüm etkinlik türleri için kullanılabilir ilkelerdir.

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

Kopyalama etkinliğindeki kaynak RelationalSource türündeyse (SAP HANA dahil), typeProperties bölümünde aşağıdaki özellikler kullanılabilir:

Özellik Açıklama İzin verilen değerler Gerekli
sorgu SAP HANA örneğinden verileri okumak için SQL sorgusunu belirtir. sorgu SQL. Yes

JSON örneği: verileri SAP HANA'den Azure Blob'a kopyalama

Aşağıdaki örnek, Visual Studio veyaAzure PowerShell kullanarak işlem hattı oluşturmak için kullanabileceğiniz örnek JSON tanımları sağlar. Bu örnekte, şirket içi SAP HANA Azure Blob Depolama veri kopyalama gösterilmektedir. Ancak veriler, Azure Data Factory'daki Kopyalama Etkinliği kullanılarak doğrudan burada listelenen havuzlardan herhangi birine kopyalanabilir.

Önemli

Bu örnek JSON kod parçacıkları sağlar. Veri fabrikasını oluşturmaya yönelik adım adım yönergeleri içermez. Adım adım yönergeler için şirket içi konumlar ile bulut arasında veri taşıma makalesine bakın.

Örnekte aşağıdaki veri fabrikası varlıkları vardır:

  1. SapHana türünde bağlı bir hizmet.
  2. AzureStorage türünde bağlı bir hizmet.
  3. RelationalTable türünde bir giriş veri kümesi.
  4. AzureBlob türünde bir çıkış veri kümesi.
  5. RelationalSource ve BlobSink kullanan Kopyalama Etkinliğine sahip bir işlem hattı.

Örnek, verileri bir SAP HANA örneğinden saatlik olarak Azure blob'a kopyalar. Bu örneklerde kullanılan JSON özellikleri, örnekleri izleyen bölümlerde açıklanmıştır.

İlk adım olarak veri yönetimi ağ geçidini ayarlayın. Yönergeler, şirket içi konumlar ile bulut arasında veri taşıma makalesinde verilmiştir .

bağlı hizmeti SAP HANA

Bu bağlı hizmet, SAP HANA örneğinizi veri fabrikasına bağlar. type özelliği SapHana olarak ayarlanır. typeProperties bölümü, SAP HANA örneği için bağlantı bilgileri sağlar.

{
    "name": "SapHanaLinkedService",
    "properties":
    {
        "type": "SapHana",
        "typeProperties":
        {
            "server": "<server name>",
            "authenticationType": "<Basic, or Windows>",
            "username": "<SAP user>",
            "password": "<Password for SAP user>",
            "gatewayName": "<gateway name>"
        }
    }
}

Azure Storage bağlı hizmeti

Bu bağlı hizmet, Azure Depolama hesabınızı veri fabrikasına bağlar. type özelliği AzureStorage olarak ayarlanır. typeProperties bölümü, Azure Depolama hesabı için bağlantı bilgilerini sağlar.

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

Giriş veri kümesini SAP HANA

Bu veri kümesi, SAP HANA veri kümesini tanımlar. Data Factory veri kümesinin türünü RelationalTable olarak ayarlarsınız. Şu anda, bir SAP HANA veri kümesi için türe özgü özellikler belirtemezsiniz. Kopyalama Etkinliği tanımındaki sorgu, SAP HANA örneğinden hangi verilerin okunmasını belirtir.

Dış özelliğin true olarak ayarlanması Data Factory hizmetine tablonun veri fabrikasının dışında olduğunu ve veri fabrikasındaki bir etkinlik tarafından üretilmediğini bildirir.

Sıklık ve aralık özellikleri zamanlamayı tanımlar. Bu durumda veriler, SAP HANA örneğinden saatlik olarak okunur.

{
    "name": "SapHanaDataset",
    "properties": {
        "type": "RelationalTable",
        "linkedServiceName": "SapHanaLinkedService",
        "typeProperties": {},
        "availability": {
            "frequency": "Hour",
            "interval": 1
        },
        "external": true
    }
}

Azure Blob çıktı veri kümesi

Bu veri kümesi, Azure Blob veri kümesinin çıkışını tanımlar. type özelliği AzureBlob olarak ayarlanır. typeProperties bölümü, SAP HANA örneğinden kopyalanan verilerin depolandığı yeri sağlar. Veriler saatte bir yeni bir bloba yazılır (sıklık: saat, aralık: 1). Blobun klasör yolu, işlenen dilimin başlangıç zamanına göre dinamik olarak değerlendirilir. Klasör yolu başlangıç saatinin yıl, ay, gün ve saat bölümlerini kullanır.

{
    "name": "AzureBlobDataSet",
    "properties": {
        "type": "AzureBlob",
        "linkedServiceName": "AzureStorageLinkedService",
        "typeProperties": {
            "folderPath": "mycontainer/saphana/yearno={Year}/monthno={Month}/dayno={Day}/hourno={Hour}",
            "format": {
                "type": "TextFormat",
                "rowDelimiter": "\n",
                "columnDelimiter": "\t"
            },
            "partitionedBy": [
                {
                    "name": "Year",
                    "value": {
                        "type": "DateTime",
                        "date": "SliceStart",
                        "format": "yyyy"
                    }
                },
                {
                    "name": "Month",
                    "value": {
                        "type": "DateTime",
                        "date": "SliceStart",
                        "format": "MM"
                    }
                },
                {
                    "name": "Day",
                    "value": {
                        "type": "DateTime",
                        "date": "SliceStart",
                        "format": "dd"
                    }
                },
                {
                    "name": "Hour",
                    "value": {
                        "type": "DateTime",
                        "date": "SliceStart",
                        "format": "HH"
                    }
                }
            ]
        },
        "availability": {
            "frequency": "Hour",
            "interval": 1
        }
    }
}

Kopyalama etkinliği ile işlem hattı

İşlem hattı, giriş ve çıkış veri kümelerini kullanacak şekilde yapılandırılmış ve saatte bir çalışacak şekilde zamanlanmış bir Kopyalama Etkinliği içerir. İşlem hattı JSON tanımında kaynak türü relationalSource (SAP HANA kaynak için) ve havuz türü blobSink olarak ayarlanır. Query özelliği için belirtilen SQL sorgusu, kopyalanacak son bir saat içindeki verileri seçer.

{
    "name": "CopySapHanaToBlob",
    "properties": {
        "description": "pipeline for copy activity",
        "activities": [
            {
                "type": "Copy",
                "typeProperties": {
                    "source": {
                        "type": "RelationalSource",
                        "query": "<SQL Query for HANA>"
                    },
                    "sink": {
                        "type": "BlobSink",
                        "writeBatchSize": 0,
                        "writeBatchTimeout": "00:00:00"
                    }
                },
                "inputs": [
                    {
                        "name": "SapHanaDataset"
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureBlobDataSet"
                    }
                ],
                "policy": {
                    "timeout": "01:00:00",
                    "concurrency": 1
                },
                "scheduler": {
                    "frequency": "Hour",
                    "interval": 1
                },
                "name": "SapHanaToBlob"
            }
        ],
        "start": "2017-03-01T18:00:00Z",
        "end": "2017-03-01T19:00:00Z"
    }
}

SAP HANA için tür eşlemesi

Veri taşıma etkinlikleri makalesinde belirtildiği gibi, Kopyalama etkinliği aşağıdaki iki adımlı yaklaşımla kaynak türlerden havuz türlerine otomatik tür dönüştürmeleri gerçekleştirir:

  1. Yerel kaynak türlerinden .NET türüne dönüştürme
  2. .NET türünden yerel havuz türüne dönüştürme

verileri SAP HANA taşırken, SAP HANA türlerinden .NET türlerine aşağıdaki eşlemeler kullanılır.

SAP HANA Türü .NET Tabanlı Tür
TİNYİNT Bayt
SMALLİNT Int16
INT Int32
BİGİNT Int64
GERÇEK SAYI Tek
ÇİFT Tek
ON -DA -LIK Ondalık
BOOLEAN Bayt
VARCHAR Dize
NVARCHAR Dize
CLOB Bayt[]
ALFASAYı Dize
BLOB Bayt[]
DATE DateTime
TIME TimeSpan
TIMESTAMP DateTime
SECONDDATE DateTime

Bilinen sınırlamalar

SAP HANA'dan veri kopyalarken bilinen bazı sınırlamalar vardır:

  • NVARCHAR dizeleri 4000 Unicode karakter olan maksimum uzunluğa göre kısaltılır
  • SMALLDECIMAL desteklenmez
  • VARBINARY desteklenmez
  • Geçerli Tarihler 1899/12/30 ile 9999/12/31 arasıdır

Kaynağı havuz sütunlarına eşleme

Kaynak veri kümesindeki sütunları havuz veri kümesindeki sütunlara eşleme hakkında bilgi edinmek için bkz. Azure Data Factory'de veri kümesi sütunlarını eşleme.

İlişkisel kaynaklardan tekrarlanabilir okuma

İlişkisel veri depolarından veri kopyalarken, istenmeyen sonuçlardan kaçınmak için yinelenebilirliği göz önünde bulundurun. Azure Data Factory dilimleri el ile yeniden çalıştırabilirsiniz. Ayrıca bir veri kümesi için yeniden deneme ilkesini yapılandırarak bir hata oluştuğunda dilimin yeniden çalıştırılmasını sağlayabilirsiniz. Bir dilim her iki şekilde de yeniden çalıştırıldığında, bir dilim kaç kez çalıştırılırsa çalıştırsın aynı verilerin okunduğundan emin olmanız gerekir. Bkz . İlişkisel kaynaklardan tekrarlanabilir okuma

Performans ve Ayarlama

Azure Data Factory'da veri taşıma (Kopyalama Etkinliği) performansını etkileyen önemli faktörler ve bunu iyileştirmenin çeşitli yolları hakkında bilgi edinmek için bkz. Kopyalama Etkinliği Performansı & Ayarlama Kılavuzu.