web-dev-qa-db-fra.com

Comment lire des fichiers avec l'extension .xlsx et .xls dans la fabrique de données Azure?

J'essaie de lire un fichier Excel dans Azure Blob Storage avec l'extension .xlsx dans mon ensemble de données de fabrique de données Azure. il lance l'erreur suivante

Error found when processing 'Csv/Tsv Format Text' source 'Filename.xlsx' with row number 3: found more columns than expected column count: 1.

Quels sont les bons délimiteurs de colonnes et de lignes pour les fichiers Excel à lire dans Azure Data Factory

5
vikas shivakumar

Azure Data Factory n'a pas d'option directe pour télécharger Excel, mais il peut être téléchargé via le service lié via certaines configurations. Suivez les étapes ci-dessous pour le faire:

  1. Créez un service lié à la source en utilisant le protocole approprié (FTP, partage de fichiers, SFTP, etc.)
  2. Créez un service lié à votre stockage cloud.
  3. Prenez une activité Copier les données , définissez un ensemble de données source et un récepteur de système de fichiers en utilisant vos services liés précédemment définis
  4. Dans Source et Sink, cochez l'option Fichier binaire . Option fichier binaire
  5. Publiez et exécutez votre pipeline
0
user2029350

Je voudrais développer un peu plus sur l'option 3. Packages SSIS. J'ai testé la solution et ça a fonctionné. Tout d'abord - SSIS IR est super cher et vous souhaitez utiliser http post pour démarrer-arrêter alors qu'il n'est pas nécessaire.

Deuxièmement, SSIS ne prend pas en charge le traitement des fichiers blob prêts à l'emploi. Il y a plusieurs façons de le contourner. Vous pouvez utiliser un logiciel tiers (n'a pas essayé), ou explorer les options

Dans mon cas, j'ai utilisé une astuce pour déployer le package qui télécharge le fichier localement, le traiter puis le supprimer. Étant donné que SSIS IR est une machine virtuelle, il a essentiellement fait la même chose sur IR après le déploiement. C'était une astuce plutôt qu'une solution et ce n'était pas stable à 100%. Un autre problème - les champs numériques ont obtenu une erreur insignifiante pendant le traitement - par exemple. le téléchargement de 25 s'est traduit par 25.0000000001 sur le site db. Je ne sais pas pourquoi. Je n'ai pas eu assez de temps pour approfondir les problèmes.

0
nokufano