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:
- SAP GUI kullanarak SAP Sistemine bağlanın.
- Sistem ->Durum'a gidin.
- SAP_BASIS sürümünü denetleyin, 701'e eşit veya daha büyük olduğundan emin olun.
Ö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.
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:
- Veri Kopyalama aracı
- Azure portal
- .NET SDK'sı
- Python SDK'sı
- Azure PowerShell
- The REST API
- Azure Resource Manager şablonu
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.
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:
SAP araması yapın ve SAP tablo 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 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 SapTable ayarlanmalı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 SapTableResource ayarlanmalı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 SapTableSource ayarlanmalı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_TABLE2 benzer 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:
|
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 PartitionOnInt olduğ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 partitionLowerBound
arası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:
- Bir sorguyu SEÇENEKLER olarak alabilen ve verileri almak için kendi mantığınızı uygulayabilen özel bir işlev modülü yazın.
- "Özel işlev modülü" için özel işlev modülünüzün adını girin.
- "RFC tablo seçenekleri" için, işlev modülünüze beslenen tablo birleştirme deyimini OPTIONS olarak belirtin; örneğin, "
<TABLE1>
INNER JOIN<TABLE2>
ON COLUMN0".
Aşağıda örnek verilmiştir:
İ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:
Verileri aşağıdaki tablolardan birine aktarın:
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:
SAP NCO aracılığıyla SAP sunucusuyla bağlantı oluşturun.
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.
Sonucu alın ve verileri aşağıdaki yollarla ayrıştırın:
Şemaları almak için Alanlar tablosundaki değeri ayrıştırın.
Hangi tablonun bu değerleri içerdiğini görmek için çıkış tablosunun değerlerini alın.
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.
İlgili içerik
Kopyalama etkinliği tarafından kaynak ve havuz olarak desteklenen veri depolarının listesi için bkz . Desteklenen veri depoları.