Aracılığıyla paylaş


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

İpucu

SAP veri tümleştirme senaryosuyla ilgili genel desteği öğrenmek için bkz . Azure Data Factory kullanarak SAP veri tümleştirmesi teknik incelemesi ve her SAP bağlayıcısı hakkında ayrıntılı giriş, karşılaştırma ve rehberlik.

Desteklenen özellikler

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

Desteklenen özellikler IR
Kopyalama etkinliği (kaynak/-) (2)
Arama etkinliği (2)

(1) Azure tümleştirme çalışma zamanı (2) Şirket içinde 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).
  • Sap saydam tablosundan, havuza alınan tablodan, kümelenmiş tablodan ve 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.

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 ->Durum'a gidin.
  3. SAP_BASIS sürümünü denetleyin, 701'e eşit veya daha büyük olduğundan emin olun.
    SAP_BASIS denetle

Önkoşullar

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

  • Şirket içinde barındırılan 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'nin 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ükleme

  • 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 nesnelerinde SAP Not 460089 başvurabilirsiniz. Temel alınan NCo bağlayıcısı için belirli RFC'ler gereklidir, örneğin RFC_FUNCTION_SEARCH.

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:

Kullanıcı arabirimini kullanarak SAP tablosuna bağlı hizmet oluşturma

Azure portalı kullanıcı arabiriminde 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ızda Yönet sekmesine göz atın ve Bağlı Hizmetler'i seçin, ardından Yeni'ye tıklayın:

  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. Yes
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.
İ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ı.
Yes
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ı. Yes
password Kullanıcının parolası. Bu alanı güvenli bir şekilde depolamak SecureString için türüyle işaretleyin veya Azure Key Vault'ta depolanan bir gizli diziye başvurun. Yes
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 (kapalı, varsayılan) veya 1 (açık) değerleridir 0 .
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.
Açık olduğunda sncMode geçerlidir.
İzin verilen değerler (Kimlik Doğrulaması), (Bütünlük), 3 2 (Gizlilik), (Varsayılan), 9 8 (Maksimum) değerleridir 1 .
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 şirket içinde barındırılan tümleştirme çalışma zamanı gereklidir. Yes

Ö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"
        }
    }
}

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. Yes
tableName Verileri kopyalanacak SAP tablosunun adı. Yes

Örnek

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

Kopyalama etkinliğinin ö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. Yes
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 Çıkış verilerini bölmek için SAP RFC'ye geçirilen sınırlayıcı olarak kullanılan tek karakter. Hayır

İpucu

SAP tablonuzda birkaç milyar satır gibi büyük hacimli veriler varsa ve partitionOption partitionSetting 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 olarakpartitionOnInt, her bölümdeki satır sayısı şu formülle hesaplanır: (ve partitionLowerBoundarasına partitionUpperBound 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. Özelliğin değerinin parallelCopies katını yapmanızı maxPartitionsNumber kesinlikle öneririz. Verileri dosya tabanlı veri deposuna kopyalarken, bir klasöre birden çok dosya (yalnızca klasör adını belirtin) olarak yazmak da önerilir; 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:

Operator Açıklama
EQ Eşittir
NE Eşit değil
LT Küçüktür
LE Küçüktür veya eşittir
GT Büyüktür
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 Table Join

İ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'a (örneğin Azure Depolama, Azure SQL Veritabanı) dahil olmak 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ı.