Azure Data Factory veya Azure Synapse Analytics kullanarak SAP tablosundan 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, sap tablosundan veri kopyalamak için Azure Data Factory ve Azure Synapse Analytics işlem hatlarında kopyalama etkinliğinin nasıl kullanılacağı özetlenmiştir. Daha fazla bilgi için Kopyalama etkinliği genel bakış bölümüne bakın.

Uyarı

Bu bağlayıcı Microsoft Fabric'daki Data Factory'de de kullanılabilir. Fabric özgü yapılandırma ve özellikler için SAP Tablo bağlayıcısı Fabric belgelerine bakın.

İpucu

SAP veri tümleştirme senaryosuyla ilgili genel desteği öğrenmek için, Azure Data Factory kullanarak SAP veri tümleştirmesi teknik incelemesi'ni inceleyin; bu makalede her bir SAP bağlayıcısı hakkında ayrıntılı giriş, karşılaştırmalar ve yönergeler bulunmaktadır.

Desteklenen özellikler

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

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

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

Kopyalama etkinliği tarafından kaynak veya havuz olarak desteklenen veri depolarının listesi için Desteklenen veri depoları tablosuna bakın.

Özellikle, bu SAP tablo bağlayıcısı şunları destekler:

  • Sap tablosundan veri kopyalama:

    • SAP ERP Central Bileşeni (SAP ECC) sürüm 7.01 veya üzeri (2015'den sonra yayımlanan son SAP Destek Paketi Yığınında).
    • SAP Business Warehouse (SAP BW) sürüm 7.01 veya üzeri (2015'den sonra yayımlanan son SAP Destek Paketi Yığınında).
    • SAP S/4HANA.
    • SAP Business Suite sürüm 7.01 veya sonraki sürümlerdeki diğer ürünler (2015'den sonra yayımlanan son SAP Destek Paketi Yığınında).
  • Hem bir SAP saydam tablosundan, hem havuza alınmış tablodan, hem kümelenmiş tablodan ve bir görünümden veri kopyalama.

  • SNC yapılandırılmışsa temel kimlik doğrulaması veya Güvenli Ağ İletişimi (SNC) kullanarak veri kopyalama.

  • SAP uygulama sunucusuna veya SAP ileti sunucusuna bağlanma.

  • Varsayılan veya özel RFC aracılığıyla veri alma.

SNC hakkında daha fazla bilgi için bkz . RFC tümleştirmeleri için SAP SNC ile çalışmaya başlama - SAP blogu.

Sürüm 7.01 veya üzeri, SAP ECC sürümü yerine SAP NetWeaver sürümünü ifade eder. Örneğin, SAP ECC 6.0 EHP 7 genel olarak NetWeaver sürüm >=7.4'e sahiptir. Ortamınızdan emin değilseniz SAP sisteminizden sürümü onaylama adımları şunlardır:

  1. SAP GUI kullanarak SAP Sistemine bağlanın.
  2. Sistem -> gidin.
  3. SAP_BASIS sürümünü denetleyin, 701'e eşit veya daha büyük olduğundan emin olun.
    SAP_BASIS'i kontrol et

Önkoşullar

Bu SAP tablosu bağlayıcısını kullanmak için şunları yapmanız gerekir:

  • Kendi barındırmalı tümleştirme çalışma zamanı (sürüm 3.17 veya üzeri) ayarlayın. Daha fazla bilgi için bkz Şirket içinde barındırılan tümleştirme çalışma zamanı oluşturma ve yapılandırma.

  • SAP web sitesinden Microsoft .NET 3.0 için 64 bit SAP Bağlayıcısı'nı indirin ve şirket içinde barındırılan tümleştirme çalışma zamanı makinesine yükleyin. Yükleme sırasında, İsteğe bağlı kurulum adımları penceresinde Derlemeleri GAC'ye Yükle seçeneğini belirlediğinizden emin olun.

     .NET için SAP Bağlayıcısını Yükleyin

  • SAP tablo bağlayıcısında kullanılan SAP kullanıcısının aşağıdaki izinlere sahip olması gerekir:

    • Uzak İşlev Çağrısı (RFC) hedeflerini kullanma yetkilendirmesi.
    • S_SDSAUTH yetkilendirme nesnesinin Execute etkinliğine yönelik izinler. Çoğunluk yetkilendirme nesneleri için SAP Not 460089'a başvurabilirsiniz. NCo bağlayıcısının altyapısında bulunan belirli RFC'ler gereklidir, örneğin RFC_FUNCTION_SEARCH.

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 SAP tablosuna bağlı hizmet oluşturma

Azure portalı kullanıcı arabirimindeki bir SAP tablosuna 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. SAP araması yapın ve SAP tablo bağlayıcısını seçin.

    SAP tablo 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.

    SAP tablosu 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 SAP tablo bağlayıcısına özgü varlıkları tanımlamak için kullanılan özelliklerle ilgili ayrıntılar sağlanır.

Bağlı hizmet özellikleri

SAP BW Open Hub bağlı hizmeti için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
type type özelliği olarak SapTableayarlanmalıdır. Evet
server SAP örneğinin bulunduğu sunucunun adı.
SAP uygulama sunucusuna bağlanmak için kullanın.
Hayır
systemNumber SAP sisteminin sistem numarası.
SAP uygulama sunucusuna bağlanmak için kullanın.
SAP tablosuyla iletişim kurarken kullanılan PORT numarasını etkiler.
İzin verilen değer: Dize olarak temsil edilen iki basamaklı ondalık sayı.
Hayır
messageServer SAP ileti sunucusunun ana bilgisayar adı.
SAP ileti sunucusuna bağlanmak için kullanın.
Hayır
messageServerService İleti sunucusunun hizmet adı veya bağlantı noktası numarası.
SAP ileti sunucusuna bağlanmak için kullanın.
Hayır
systemId Tablonun bulunduğu SAP sisteminin kimliği.
SAP ileti sunucusuna bağlanmak için kullanın.
Hayır
logonGroup SAP sisteminin oturum açma grubu.
SAP ileti sunucusuna bağlanmak için kullanın.
Hayır
clientId SAP sistemindeki istemcinin kimliği.
İzin verilen değer: Dize olarak temsil edilen üç basamaklı ondalık sayı.
Evet
language SAP sisteminin kullandığı dil.
Varsayılan değer EN olarak belirlenmiştir.
Hayır
userName SAP sunucusuna erişimi olan kullanıcının adı. Evet
password Kullanıcının parolası. Bu alanı güvenli bir şekilde depolamak için SecureString türüyle işaretleyin veya Azure Key Vault içinde depolanan bir gizli anahtara başvurun. Evet
sncMode Tablonun bulunduğu SAP sunucusuna erişmek için SNC etkinleştirme göstergesi.
SAP sunucusuna bağlanmak için SNC kullanmak istiyorsanız kullanın.
İzin verilen değerler 0 (kapalı, varsayılan) veya 1 (açık) değerleridir.
Hayır
sncMyName Tablonun bulunduğu SAP sunucusuna erişmek için başlatıcının SNC adı.
Açık olduğunda sncMode geçerlidir.
Hayır
sncPartnerName Tablonun bulunduğu SAP sunucusuna erişmek için iletişim ortağının SNC adı.
Açık olduğunda sncMode geçerlidir.
Hayır
sncLibraryPath Tablonun bulunduğu SAP sunucusuna erişmek için dış güvenlik ürününün kitaplığı.
Açık olduğunda sncMode geçerlidir.
Hayır
sncQop Uygulanacak SNC Koruma Kalitesi düzeyi.
sncMode açıkken geçerlidir.
İzin verilen değerler (Kimlik Doğrulaması), (Bütünlük), 12 (Gizlilik), (Varsayılan), 38 (Maksimum) değerleridir 9 .
Hayır
connectVia Veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanı . Önkoşullar bölümünde daha önce belirtildiği gibi, yerel olarak barındırılan tümleştirme çalışma zamanı gereklidir. Evet

Örnek 1: SAP uygulama sunucusuna bağlanma

{
    "name": "SapTableLinkedService",
    "properties": {
        "type": "SapTable",
        "typeProperties": {
            "server": "<server name>",
            "systemNumber": "<system number>",
            "clientId": "<client ID>",
            "userName": "<SAP user>",
            "password": {
                "type": "SecureString",
                "value": "<Password for SAP user>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek 2: SAP ileti sunucusuna bağlanma

{
    "name": "SapTableLinkedService",
    "properties": {
        "type": "SapTable",
        "typeProperties": {
            "messageServer": "<message server name>",
            "messageServerService": "<service name or port>",
            "systemId": "<system ID>",
            "logonGroup": "<logon group>",
            "clientId": "<client ID>",
            "userName": "<SAP user>",
            "password": {
                "type": "SecureString",
                "value": "<Password for SAP user>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek 3: SNC kullanarak bağlanma

{
    "name": "SapTableLinkedService",
    "properties": {
        "type": "SapTable",
        "typeProperties": {
            "server": "<server name>",
            "systemNumber": "<system number>",
            "clientId": "<client ID>",
            "userName": "<SAP user>",
            "password": {
                "type": "SecureString",
                "value": "<Password for SAP user>"
            },
            "sncMode": 1,
            "sncMyName": "<SNC myname>",
            "sncPartnerName": "<SNC partner name>",
            "sncLibraryPath": "<SNC library path>",
            "sncQop": "8"
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

SNC hakkında daha fazla bilgi için bkz . RFC tümleştirmeleri için SAP SNC ile çalışmaya başlama - SAP blogu.

Veri kümesi özellikleri

Veri kümelerini tanımlamaya yönelik bölümlerin ve özelliklerin tam listesi için bkz . Veri kümeleri. Aşağıdaki bölümde SAP tablo veri kümesi tarafından desteklenen özelliklerin listesi sağlanır.

SAP BW Open Hub bağlı hizmetinden ve hizmetine veri kopyalamak için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
type type özelliği olarak SapTableResourceayarlanmalıdır. Evet
tableName Verileri kopyalanacak SAP tablosunun adı. Evet

Örnek

{
    "name": "SAPTableDataset",
    "properties": {
        "type": "SapTableResource",
        "typeProperties": {
            "tableName": "<SAP table name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<SAP table linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Kopyalama etkinliği özellikleri

Etkinlikleri tanımlamaya yönelik bölümlerin ve özelliklerin tam listesi için bkz İşlem Hatları. Aşağıdaki bölümde SAP tablo kaynağı tarafından desteklenen özelliklerin listesi sağlanır.

Kaynak olarak SAP tablosu

SAP tablosundan veri kopyalamak için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
type type özelliği olarak SapTableSourceayarlanmalıdır. Evet
rowCount Alınacak satır sayısı. Hayır
rfcTableFields SAP tablosundan kopyalanacak alanlar (sütunlar). Örneğin, column0, column1. Hayır
rfcTableOptions SAP tablosundaki satırları filtreleme seçenekleri. Örneğin, COLUMN0 EQ 'SOMEVALUE'. Bu makalenin devamında sap sorgu işleci tablosuna da bakın. Hayır
customRfcReadTableFunctionModule SAP tablosundaki verileri okumak için kullanılabilecek özel bir RFC işlev modülü.
Verilerin SAP sisteminizden nasıl alınıp hizmete döndürülür tanımlamak için özel bir RFC işlev modülü kullanabilirsiniz. Özel işlev modülünün, hizmet tarafından kullanılan varsayılan arabirim olan uygulamasına /SAPDS/RFC_READ_TABLE2benzer bir arabirim (içeri aktarma, dışarı aktarma, tablolar) olmalıdır.
Hayır
partitionOption SAP tablosundan okunacak bölüm mekanizması. Desteklenen seçenekler şunlardır:
  • None
  • PartitionOnInt (solda sıfır doldurma içeren normal tamsayı veya tamsayı değerleri, örneğin 0000012345)
  • PartitionOnCalendarYear ("YYYYY" biçiminde 4 basamak")
  • PartitionOnCalendarMonth ("YYYYMM" biçiminde 6 basamak")
  • PartitionOnCalendarDate ("YYYYMMDD" biçiminde 8 basamak")
  • PartitionOntime ("HHMMSS" biçiminde 6 basamak, örneğin 235959)
Hayır
partitionColumnName Verileri bölümlendirmek için kullanılan sütunun adı. Hayır
partitionUpperBound Bölümleme işlemine devam etmek için içinde belirtilen partitionColumnName sütunun en büyük değeri kullanılır. Hayır
partitionLowerBound Bölümleme işlemine devam etmek için içinde belirtilen partitionColumnName sütunun en düşük değeri kullanılır. (Not: partitionLowerBound Bölüm seçeneği PartitionOnIntolduğunda "0" olamaz) Hayır
maxPartitionsNumber Verilerin bölündüğü bölüm sayısı üst sınırı. Varsayılan değer 1 şeklindedir. Hayır
sapDataColumnDelimiter SAP RFC'ye sınırlayıcı olarak geçirilen tek karakter, çıkış verilerini bölmek için kullanılır. Hayır

İpucu

SAP tablonuzda birkaç milyar satır gibi büyük hacimli veriler varsa ve partitionOptionpartitionSetting kullanarak verileri daha küçük bölümlere bölün. Bu durumda, veriler bölüm başına okunur ve her veri bölümü tek bir RFC çağrısı aracılığıyla SAP sunucunuzdan alınır.

partitionOption örnek olarak partitionOnInt, her bölümdeki satır sayısı şu formülle hesaplanır: (partitionUpperBound ve partitionLowerBound arasına düşen toplam satır sayısı)/maxPartitionsNumber.

Kopyalamayı hızlandırmak için veri bölümlerini paralel olarak yüklemek için, paralel derece kopyalama etkinliğindeki parallelCopies ayar tarafından denetlenmektedir. Örneğin, dört olarak ayarlarsanız parallelCopies , hizmet aynı anda belirtilen bölüm seçeneğinize ve ayarlarınıza göre dört sorgu oluşturur ve çalıştırır ve her sorgu SAP tablonuzdan verilerin bir bölümünü alır. maxPartitionsNumber'ı, parallelCopies özelliğinin değerinin katı olacak şekilde ayarlamanızı kesinlikle öneririz. Verileri dosya tabanlı veri deposuna kopyalarken, bir klasöre birden çok dosya olarak yazmanız da önerilir (yalnızca klasör adını belirtin), bu durumda performans tek bir dosyaya yazmaktan daha iyidir.

İpucu

BASXML, hizmet içindeki bu SAP Tablo bağlayıcısı için varsayılan olarak etkindir.

içinde rfcTableOptions, satırları filtrelemek için aşağıdaki yaygın SAP sorgu işleçlerini kullanabilirsiniz:

Operatör Açıklama
EQ Eşittir
NE Eşit değil
LT Daha az
LE Küçüktür veya eşittir
GT Daha büyük
GE Büyüktür veya eşittir
IN Olduğu gibi TABCLASS IN ('TRANSP', 'INTTAB')
LIKE Olduğu gibi LIKE 'Emma%'

Örnek

"activities":[
    {
        "name": "CopyFromSAPTable",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SAP table input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SapTableSource",
                "partitionOption": "PartitionOnInt",
                "partitionSettings": {
                     "partitionColumnName": "<partition column name>",
                     "partitionUpperBound": "2000",
                     "partitionLowerBound": "1",
                     "maxPartitionsNumber": 500
                 }
            },
            "sink": {
                "type": "<sink type>"
            },
            "parallelCopies": 4
        }
    }
]

SAP tablolarını birleştirme

ŞU anda SAP Tablo bağlayıcısı, varsayılan işlev modülüne sahip tek bir tabloyu destekler. Birden çok tablonun birleştirilmiş verilerini almak için aşağıdaki adımları izleyerek SAP Tablosu bağlayıcısında customRfcReadTableFunctionModule özelliğinden yararlanabilirsiniz:

Aşağıda örnek verilmiştir:

SAP Tablo Birleştirme

İpucu

Ayrıca, birleştirilmiş verilerin SAP Tablo bağlayıcısı tarafından desteklenen VIEW'da toplanmış olmasını da düşünebilirsiniz. ayrıca, Azure (örneğin, Azure Depolama, Azure SQL Veritabanı) üzerine eklemek için ilgili tabloları ayıklamayı deneyebilir ve daha fazla birleştirme veya filtreleme işlemine devam etmek için Veri Akışı kullanabilirsiniz.

Özel işlev modülü oluşturma

SAP tablosu için şu anda kopyalama kaynağında customRfcReadTableFunctionModule özelliğini destekliyoruz. Bu özellik kendi mantığınızdan ve işlem verilerinizden yararlanmanızı sağlar.

Hızlı bir kılavuz olarak, "Özel işlev modülü" ile çalışmaya başlamaya yönelik bazı gereksinimler şunlardır:

  • Tanım:

    Tanım

  • Verileri aşağıdaki tablolardan birine aktarın:

    Tablo 1'i dışarı aktarma

    Tablo 2'ye dışarı aktarma

SAP tablo bağlayıcısının özel işlev modülüyle nasıl çalıştığını gösteren çizimler aşağıdadır:

  1. SAP NCO aracılığıyla SAP sunucusuyla bağlantı oluşturun.

  2. Aşağıdaki gibi ayarlanmış parametrelerle "Özel işlev modülünü" çağırın:

    • QUERY_TABLE: SAP Tablo veri kümesinde ayarladığınız tablo adı;
    • Sınırlayıcı: SAP Tablo Kaynağı'nda ayarladığınız sınırlayıcı;
    • ROWCOUNT/Option/Fields: Tablo kaynağında ayarladığınız Satır Sayısı/Toplu Seçenek/Alanlar.
  3. Sonucu alın ve verileri aşağıdaki yollarla ayrıştırın:

    1. Şemaları almak için Alanlar tablosundaki değeri ayrıştırın.

      Alanlardaki değerleri ayrıştırma

    2. Hangi tablonun bu değerleri içerdiğini görmek için çıkış tablosunun değerlerini alın.

      Çıkış tablosundaki değerleri alma

    3. OUT_TABLE değerlerini alın, verileri ayrıştırın ve havuza yazın.

SAP tablosu için veri türü eşlemeleri

SAP tablosundan veri kopyalarken, SAP tablosu veri türlerinden hizmet içinde kullanılan ara veri türlerine aşağıdaki eşlemeler kullanılır. Kopyalama etkinliğinin kaynak şemayı ve veri türünü havuza nasıl eşlediğini öğrenmek için bkz . Şema ve veri türü eşlemeleri.

SAP ABAP Türü Hizmet ara veri türü
C (Dize) String
I (Tamsayı) Int32
F (Kayan) Double
D (Tarih) String
T (Saat) String
P (BCD Paketli, Para Birimi, Ondalık, Miktar) Decimal
N (Sayısal) String
X (İkili ve Ham) String

Arama etkinliği özellikleri

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

Kopyalama etkinliği tarafından kaynak ve havuz olarak desteklenen veri depolarının listesi için bkz . Desteklenen veri depoları.