Azure Data Factory kullanarak SAP Business Warehouse'dan veri 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 Business Warehouse bağlayıcısı.

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

Şirket içi SAP Business Warehouse 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 SAP Business Warehouse'dan diğer veri depolarına taşımayı destekler, ancak diğer veri depolarından SAP Business Warehouse'a veri taşımayı desteklemez.

Desteklenen sürümler ve yükleme

Bu bağlayıcı SAP Business Warehouse sürüm 7.x'i destekler. MDX sorgularını kullanarak InfoCubes ve QueryCubes'tan (BEx sorguları dahil) veri kopyalamayı destekler.

SAP BW ö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 Business Warehouse 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 Business Warehouse 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 SAP NetWeaver kitaplığı. SAP Netweaver kitaplığını SAP yöneticinizden veya doğrudan SAP Yazılım İndirme Merkezi'nden alabilirsiniz. En son sürümün indirme konumunu almak için SAP Notu #1025361'ni arayın. SAP NetWeaver kitaplığı mimarisinin (32 bit veya 64 bit) ağ geçidi yüklemenizle eşleştiğinden emin olun. Ardından SAP NetWeaver RFC SDK'sında bulunan tüm dosyaları SAP Notu'na göre yükleyin. SAP NetWeaver kitaplığı, SAP İstemci Araçları yüklemesine de dahildir.

İpucu

NetWeaver RFC SDK'sından ayıklanan dll'leri system32 klasörüne yerleştirin.

Başlarken

Farklı araçlar/API'ler kullanarak verileri şirket içi Cassandra veri deposundan 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ş, 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 Business Warehouse'dan veri 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 Business Warehouse'dan Azure Blob'a veri kopyalama bölümüne bakın.

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

Bağlı hizmet özellikleri

Aşağıdaki tabloda SAP Business Warehouse (BW) bağlı hizmetine özgü JSON öğeleri için açıklama sağlanır.

Özellik Açıklama İzin verilen değerler Gerekli
sunucu SAP BW örneğinin bulunduğu sunucunun adı. string Yes
systemNumber SAP BW sisteminin sistem numarası. Dize olarak gösterilen iki basamaklı ondalık sayı. Yes
clientId SAP W sistemindeki istemcinin istemci kimliği. Dize olarak gösterilen üç basamaklı ondalık sayı. 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 BW ö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'unun 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 veri deposundaki verilerin konumu hakkında bilgi sağlar. RelationalTable türünde SAP BW veri kümesi için desteklenen türe özgü özellik yoktur.

Kopyalama etkinliğinin özellikleri

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

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

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

Özellik Açıklama İzin verilen değerler Gerekli
sorgu SAP BW örneğindeki verileri okumak için MDX sorgusunu belirtir. MDX sorgusu. Yes

JSON örneği: SAP Business Warehouse'dan Azure Blob'a veri 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 örnek, şirket içi SAP Business Warehouse'dan Azure Blob Depolama veri kopyalamayı gösterir. Ancak veriler, Azure Data Factory'daki Kopyalama Etkinliği kullanılarak burada belirtilen havuzlardan herhangi birine doğrudan 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. SapBw 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, sap business warehouse örneğindeki verileri saatlik olarak bir 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 .

SAP Business Warehouse bağlı hizmeti

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

{
    "name": "SapBwLinkedService",
    "properties":
    {
        "type": "SapBw",
        "typeProperties":
        {
            "server": "<server name>",
            "systemNumber": "<system number>",
            "clientId": "<client id>",
            "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>"
    }
  }
}

SAP BW giriş veri kümesi

Bu veri kümesi SAP Business Warehouse veri kümesini tanımlar. Data Factory veri kümesinin türünü RelationalTable olarak ayarlarsınız. Şu anda SAP BW veri kümesi için türe özgü hiçbir özellik belirtmiyorsunuz. Kopyalama Etkinliği tanımındaki sorgu, SAP BW ö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 BW örneğinden saatlik olarak okunur.

{
    "name": "SapBwDataset",
    "properties": {
        "type": "RelationalTable",
        "linkedServiceName": "SapBwLinkedService",
        "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 BW ö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/sapbw/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 BW kaynağı için) ve havuz türü blobSink olarak ayarlanır. Sorgu özelliği için belirtilen sorgu , kopyalanacak son bir saat içindeki verileri seçer.

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

SAP BW 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

SAP BW'dan veri taşırken, SAP BW türlerinden .NET türlerine aşağıdaki eşlemeler kullanılır.

ABAP Sözlüğündeki veri türü .NET Veri Türü
ACCP int
CHAR Dize
CLNT Dize
CURR Ondalık
CUKY Dize
ARALIK Ondalık
FLTP Çift
INT1 Bayt
INT2 Int16
INT4 int
LANG Dize
LCHR Dize
LRAW Bayt[]
PREC Int16
QUAN Ondalık
HAM Bayt[]
RAWSTRING Bayt[]
DİZE Dize
BİRİM Dize
DATS Dize
NUMC Dize
TIMS Dize

Not

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

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.