Azure Data Factory veya Synapse Analytics kullanarak SAP HANA'dan veri kopyalama

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

Bahşiş

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 HANA veritabanından veri kopyalamak için Azure Data Factory ve Synapse Analytics işlem hatlarında Kopyalama Etkinliğinin nasıl kullanılacağı özetlenmiştir. Kopyalama etkinliğine genel bir genel bakış sunan kopyalama etkinliğine genel bakış makalesini oluşturur.

Bahşiş

SAP veri tümleştirme senaryosuna yönelik genel destek hakkında bilgi edinmek için bkz . 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 HANA bağlayıcısı aşağıdaki özellikler için desteklenir:

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

(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/havuz olarak desteklenen veri depolarının listesi için Desteklenen veri depoları tablosuna bakın.

Bu SAP HANA bağlayıcısı özellikle şunları destekler:

  • SAP HANA veritabanının herhangi bir sürümünden veri kopyalama.
  • HANA bilgi modellerinden (Analiz ve Hesaplama görünümleri gibi) ve Satır/Sütun tablolarından veri kopyalama.
  • Temel veya Windows kimlik doğrulamasını kullanarak veri kopyalama.
  • SAP HANA kaynağından paralel kopyalama. Ayrıntılar için SAP HANA'dan paralel kopyalama bölümüne bakın.

Bahşiş

VERILERI SAP HANA veri deposuna kopyalamak için genel ODBC bağlayıcısını kullanın. Ayrıntılarla birlikte SAP HANA havuzu bölümüne bakın. SAP HANA bağlayıcısı ve ODBC bağlayıcısı için bağlı hizmetlerin farklı türde olduğunu, bu nedenle yeniden kullanılamayacağı unutmayın.

Önkoşullar

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

  • Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı ayarlayın. Ayrıntılar için şirket içinde barındırılan Integration Runtime makalesine bakın.
  • Integration Runtime makinesine SAP HANA ODBC sürücüsünü yükleyin. SAP HANA ODBC sürücüsünü SAP Yazılım İndirme Merkezi'nden indirebilirsiniz. Windows için SAP HANA CLIENT anahtar sözcüğüyle arama yapın.

Başlarken

İş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 HANA'ya bağlı hizmet oluşturma

Azure portalı kullanıcı arabiriminde SAP HANA'ya bağlı bir 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 HANA bağlayıcısını seçin.

    Screenshot of the SAP HANA connector.

  3. Hizmet ayrıntılarını yapılandırın, bağlantıyı test edin ve yeni bağlı hizmeti oluşturun.

    Screenshot of linked service configuration for SAP HANA.

Bağlan veya yapılandırma ayrıntıları

Aşağıdaki bölümlerde SAP HANA bağlayıcısına özgü Data Factory varlıklarını tanımlamak için kullanılan özelliklerle ilgili ayrıntılar sağlanır.

Bağlı hizmet özellikleri

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

Özellik Açıklama Gerekli
type Tür özelliği şu şekilde ayarlanmalıdır: SapHana Evet
Connectionstring Temel kimlik doğrulamasını veya Windows kimlik doğrulamasını kullanarak SAP HANA'ya bağlanmak için gereken bilgileri belirtin. Aşağıdaki örneklere bakın.
bağlantı dizesi'da sunucu/bağlantı noktası zorunludur (varsayılan bağlantı noktası 30015'tir) ve temel kimlik doğrulaması kullanılırken kullanıcı adı ve parola zorunludur. Ek gelişmiş ayarlar için bkz. SAP HANA ODBC Bağlan ion Özellikleri
Ayrıca Azure Key Vault'a parola ekleyebilir ve parola yapılandırmasını bağlantı dizesi çıkarabilirsiniz. Daha fazla ayrıntı içeren Azure Key Vault'ta kimlik bilgilerini depolama makalesine bakın.
Evet
userName Windows kimlik doğrulaması kullanırken kullanıcı adını belirtin. Örnek: user@domain.com No
password Kullanıcı hesabı için parola belirtin. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin veya Azure Key Vault'ta depolanan bir gizli diziye başvurun. No
connectVia Veri deposuna bağlanmak için kullanılacak Integration Runtime. Önkoşullar bölümünde belirtildiği gibi şirket içinde barındırılan tümleştirme çalışma zamanı gereklidir. Evet

Örnek: temel kimlik doğrulamayı kullanma

{
    "name": "SapHanaLinkedService",
    "properties": {
        "type": "SapHana",
        "typeProperties": {
            "connectionString": "SERVERNODE=<server>:<port (optional)>;UID=<userName>;PWD=<Password>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek: Windows kimlik doğrulaması kullanma

{
    "name": "SapHanaLinkedService",
    "properties": {
        "type": "SapHana",
        "typeProperties": {
            "connectionString": "SERVERNODE=<server>:<port (optional)>;",
            "userName": "<username>", 
            "password": { 
                "type": "SecureString", 
                "value": "<password>" 
            } 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

SAP HANA bağlı hizmetini aşağıdaki yükle kullandıysanız, yine de olduğu gibi desteklenir, ancak bundan sonra yenisini kullanmanız önerilir.

Örnek:

{
    "name": "SapHanaLinkedService",
    "properties": {
        "type": "SapHana",
        "typeProperties": {
            "server": "<server>:<port (optional)>",
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Veri kümesi özellikleri

Veri kümelerini tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için veri kümeleri makalesine bakın. Bu bölümde SAP HANA veri kümesi tarafından desteklenen özelliklerin listesi sağlanır.

SAP HANA'dan veri kopyalamak için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
type Veri kümesinin tür özelliği şu şekilde ayarlanmalıdır: SapHanaTable Evet
schema SAP HANA veritabanındaki şemanın adı. Hayır (etkinlik kaynağında "sorgu" belirtilirse)
table SAP HANA veritabanındaki tablonun adı. Hayır (etkinlik kaynağında "sorgu" belirtilirse)

Örnek:

{
    "name": "SAPHANADataset",
    "properties": {
        "type": "SapHanaTable",
        "typeProperties": {
            "schema": "<schema name>",
            "table": "<table name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<SAP HANA linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Yazılan veri kümesini kullanıyorsanız RelationalTable , bu veri kümesi olduğu gibi desteklenirken, ileriye dönük yeni bir veri kümesini kullanmanız önerilir.

Kopyalama etkinliğinin özellikleri

Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için İşlem hatları makalesine bakın. Bu bölümde SAP HANA kaynağı tarafından desteklenen özelliklerin listesi sağlanır.

Kaynak olarak SAP HANA

Bahşiş

Veri bölümlemeyi kullanarak SAP HANA'dan verileri verimli bir şekilde almak için SAP HANA'dan paralel kopyalama bölümünden daha fazla bilgi edinin.

SAP HANA'dan veri kopyalamak için kopyalama etkinliği kaynağı bölümünde aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
type Kopyalama etkinliği kaynağının type özelliği şu şekilde ayarlanmalıdır: SapHanaSource Evet
query SAP HANA örneğinden verileri okumak için SQL sorgusunu belirtir. Evet
partitionOptions SAP HANA'dan veri almak için kullanılan veri bölümleme seçeneklerini belirtir. SAP HANA'dan paralel kopyalama bölümünden daha fazla bilgi edinin.
İzin ver değerleri şunlardır: Hiçbiri (varsayılan), PhysicalPartitionsOfTable, SapHanaDynamicRange. SAP HANA'dan paralel kopyalama bölümünden daha fazla bilgi edinin. PhysicalPartitionsOfTable yalnızca bir tablodan veri kopyalarken kullanılabilir ancak sorguda kullanılamaz.
Bir bölüm seçeneği etkinleştirildiğinde (yani değil None), SAP HANA'dan verileri eşzamanlı olarak yüklemek için paralellik derecesi kopyalama etkinliğindeki parallelCopies ayar tarafından denetlenir.
False
bölüm Ayarlar Veri bölümleme ayarlarının grubunu belirtin.
Bölüm seçeneği olduğunda uygula seçeneğidir SapHanaDynamicRange.
False
partitionColumnName Paralel kopyalama için bölüm tarafından kullanılacak kaynak sütunun adını belirtin. Belirtilmezse, tablonun dizini veya birincil anahtarı otomatik olarak algılanır ve bölüm sütunu olarak kullanılır.
Bölüm seçeneği olduğunda SapHanaDynamicRangeuygulayın. Kaynak verileri almak için bir sorgu kullanırsanız WHERE yan tümcesine bağlanın ?AdfHanaDynamicRangePartitionCondition . SAP HANA'dan paralel kopyalama bölümündeki örne bakın.
Bölüm kullanırken SapHanaDynamicRange evet. 
packetSize Verileri birden çok bloka bölmek için ağ paketi boyutunu (Kilobayt cinsinden) belirtir. Kopyalanacak çok miktarda veriniz varsa paket boyutunu artırmak çoğu durumda SAP HANA'dan okuma hızını artırabilir. Paket boyutu ayarlanırken performans testi önerilir. Hayır.
Varsayılan değer 2048 'dir (2 MB).

Örnek:

"activities":[
    {
        "name": "CopyFromSAPHANA",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SAP HANA input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SapHanaSource",
                "query": "<SQL query for SAP HANA>"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Yazılan kopyalama kaynağını kullandıysanız RelationalSource , yine de olduğu gibi desteklenir, ancak bundan sonra yenisini kullanmanız önerilir.

SAP HANA'dan paralel kopyalama

SAP HANA bağlayıcısı, SAP HANA'dan paralel olarak veri kopyalamak için yerleşik veri bölümleme sağlar. Veri bölümleme seçeneklerini kopyalama etkinliğinin Kaynak tablosunda bulabilirsiniz.

Screenshot of partition options

Bölümlenmiş kopyalamayı etkinleştirdiğinizde hizmet, bölümlere göre veri almak için SAP HANA kaynağınızda paralel sorgular çalıştırır. Paralel derece, kopyalama etkinliğindeki parallelCopies ayar tarafından denetlenilir. Örneğin, dört olarak ayarlarsanız parallelCopies hizmet, belirtilen bölüm seçeneğinize ve ayarlarınıza göre aynı anda dört sorgu oluşturur ve çalıştırır ve her sorgu SAP HANA'nızdan verilerin bir bölümünü alır.

Özellikle SAP HANA'nızdan büyük miktarda veri aldığınızda veri bölümleme ile paralel kopyalamayı etkinleştirmeniz önerilir. Farklı senaryolar için önerilen yapılandırmalar aşağıdadır. Verileri dosya tabanlı veri deposuna kopyalarken, bir klasöre birden çok dosya olarak yazmanız önerilir (yalnızca klasör adını belirtin), bu durumda performans tek bir dosyaya yazmaktan daha iyidir.

Senaryo Önerilen ayarlar
Büyük tablodan tam yük. Bölüm seçeneği: Tablonun fiziksel bölümleri.

Yürütme sırasında hizmet, belirtilen SAP HANA tablosunun fiziksel bölüm türünü otomatik olarak algılar ve ilgili bölüm stratejisini seçer:
- Aralık Bölümleme: Tablo için tanımlanan bölüm sütununu ve bölüm aralıklarını alın, ardından verileri aralığa göre kopyalayın.
- Karma Bölümleme: Karma bölüm anahtarını bölüm sütunu olarak kullanın, ardından hizmet tarafından hesaplanan aralıklara göre verileri bölümleyin ve kopyalayın.
- Hepsini Bir Kez Deneme Bölümleme veya Bölüm Yok: Birincil anahtarı bölüm sütunu olarak kullanın, ardından hizmet tarafından hesaplanan aralıklara göre verileri bölümleyin ve kopyalayın.
Özel sorgu kullanarak büyük miktarda veri yükleyin. Bölüm seçeneği: Dinamik aralık bölümü.
Sorgu: SELECT * FROM <TABLENAME> WHERE ?AdfHanaDynamicRangePartitionCondition AND <your_additional_where_clause>.
Bölüm sütunu: Dinamik aralık bölümünü uygulamak için kullanılan sütunu belirtin.

Yürütme sırasında, hizmet önce belirtilen bölüm sütununun değer aralıklarını hesaplar, paralel kopyalama ayarının farklı bölüm sütun değerlerinin sayısına göre bir dizi demetteki satırları eşit olarak dağıtır, ardından her bölüm için bölüm sütunu değer aralığını filtreleme ile değiştirir ?AdfHanaDynamicRangePartitionCondition ve SAP HANA'ya gönderir.

Bölüm sütunu olarak birden çok sütun kullanmak istiyorsanız, her sütunun değerlerini sorguda bir sütun olarak birleştirebilir ve bunu gibi SELECT * FROM (SELECT *, CONCAT(<KeyColumn1>, <KeyColumn2>) AS PARTITIONCOLUMN FROM <TABLENAME>) WHERE ?AdfHanaDynamicRangePartitionConditionbölüm sütunu olarak belirtebilirsiniz.

Örnek: tablonun fiziksel bölümleriyle sorgu

"source": {
    "type": "SapHanaSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

Örnek: dinamik aralık bölümü olan sorgu

"source": {
    "type": "SapHanaSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfHanaDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "SapHanaDynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<Partition_column_name>"
    }
}

SAP HANA için veri türü eşlemesi

SAP HANA'dan veri kopyalarken, SAP HANA veri türlerinden hizmet içinde dahili olarak 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 HANA veri türü Ara hizmet veri türü
ALFANUM String
BİGİNT Int64
IKİLİ Bayt[]
BINTEXT String
BLOB Bayt[]
BOOL Bayt
CLOB String
DATE DateTime
ON -DA -LIK Decimal
ÇİFT Çift
FLOAT Çift
TAMSAYI Int32
NCLOB String
NVARCHAR String
GERÇEK Tekli
SECONDDATE DateTime
KISAMET String
KÜÇÜKDECIMAL Ondalık
SMALLİNT Int16
STGEOMETRYTYPE Bayt[]
STPOINTTYPE Bayt[]
METİN String
TIME TimeSpan
TİNYİNT Bayt
VARCHAR String
TIMESTAMP DateTime
VARBİNARY Bayt[]

SAP HANA havuzu

Şu anda SAP HANA bağlayıcısı havuz olarak desteklenmezken, SAP HANA sürücüsüyle genel ODBC bağlayıcısını kullanarak SAP HANA'ya veri yazabilirsiniz.

Şirket içinde barındırılan Tümleştirme Çalışma Zamanı'nı ayarlamak ve önce SAP HANA ODBC sürücüsünü yüklemek için Önkoşullar'ı izleyin. Aşağıdaki örnekte gösterildiği gibi SAP HANA veri deponuza bağlanmak için bir ODBC bağlı hizmeti oluşturun, ardından odbc türüne uygun veri kümesi ve kopyalama etkinliği havuzu oluşturun. ODBC bağlayıcısı makalesinden daha fazla bilgi edinin.

{
    "name": "SAPHANAViaODBCLinkedService",
    "properties": {
        "type": "Odbc",
        "typeProperties": {
            "connectionString": "Driver={HDBODBC};servernode=<HANA server>.clouddatahub-int.net:30015",
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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ı.