2017-07-13 1 views
1

J'ai une base de données SAP sur site et je veux pousser quotidiennement certaines de ces données (certaines tables de la base de données SAP) vers Azure. Les données seront téléchargées en utilisant une stratégie de fusion (mise à jour si une modification est détectée, supprimer si un enregistrement est manquant, sinon insérer). Je pense le faire en utilisant la configuration suivante:Est-il possible de télécharger des données vers Azure Data Warehouse à l'aide d'un ETL avec SSIS?

- Install on premise integration Services (SSIS). The client already has license for this. 
- Install SAP connector on premise. 
- Pull data from SAP into text files (on premise, into multiple CSV files) (create ETL's for this). 
- Push those files into a Blob Storage (via AzCopy), so I create a job or process somehow locally that will handle newly created files. 

- Load data into Data Warehouse using PolyBase (https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-get-started-load-with-polybase) using an UP-SERT strategy. 

Cela fonctionnera à coup sûr mais je me demande s'il est possible de télécharger directement ces données au moyen d'un ETL (en utilisant un package SSIS), en sautant essentiellement les étapes:

  1. Enregistrer des fichiers non enregistrés sur un disque sur site.
  2. Poussez-les dans Azure Blob Storage.
  3. Charger des données à partir de fichiers en utilisant une table virtuelle sur le fichier téléchargé.

Mes préoccupations sont en termes de: - Performance - Coûts

Que pensez-vous est la meilleure façon?

Merci!

Répondre

4

Vous pouvez utiliser SQL Server Integration Services (SSIS) pour charger des données sur SQL Azure Data Warehouse via l'Azure SQL DW Upload Task qui fait partie de la Azure Feature Pack for Integration Services. Cette tâche prend les fichiers d'un partage de fichiers local et les charge dans des tables d'entrepôt en utilisant Polybase en arrière-plan. En utilisant cette méthode, vous n'aurez pas à pousser explicitement des fichiers dans Blob Storage ou à utiliser AzCopy. Cette conception ressemble à:

SAP> fichiers plats> SQL DW Upload Task

Vous pouvez également charger des données directement à une table d'entrepôt à l'aide d'une tâche Dataflow mais historiquement performance a été très lent. L'avantage que je suppose de cette conception est que vous n'avez pas besoin d'extraire les fichiers dans des fichiers plats. Je n'ai pas essayé cela récemment car la méthode recommandée est Polybase. Cette conception ressemble à:

SAP> SQL Azure Data Warehouse (en utilisant tâche de flux de données)

Une méthode alternative à considérer est Azure données Factory, qui dispose désormais d'une connectivité SAP (pour certains produits). Vous auriez besoin d'une passerelle pour faciliter la copie d'Azure sur site. ADF est potentiellement plus évolutif mais il y a un peu de courbe d'apprentissage si vous ne l'avez pas utilisé auparavant.

+0

Merci beaucoup, je pense que j'ai pris ma décision: j'utiliserai le flux SAP => Fichiers plats => Tâche de téléchargement SQL DW –