2017-09-20 7 views
0

J'utilise azure data factory pour copier les données du serveur MySQL comme source. Les données sont grandes en taille. Quand je configurer le pipeline et l'exécuter:MySQL timeout avec copie d'usine de données azure

MySQL: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. 

Je pense que cela peut être résolu avec this answer. Comment puis-je ajouter cette configuration à mon pipeline de data factory en utilisant MySQL comme source?

Mise à jour: J'utilise un script normal pour copier des données de l'entrepôt de données MySQL vers SQL sur site. La requête MySQL est simple sélection: select * from mytable; erreur complète:

Copy activity encountered a user error at Source side: GatewayNodeName=MYGATEWAY,ErrorCode=UserErrorFailedMashupOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message='Type=Microsoft.Data.Mashup.MashupValueException,Message=MySQL: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.,Source=Microsoft.MashupEngine,',Source=,'.

+0

Pouvez-vous confirmer qu'il s'agit d'une configuration de délai d'attente par défaut? La réponse que vous publiez est simplement en utilisant MySQL Connector, elle est différente de la fabrique de données sur Azure. –

+0

Le problème auquel je suis confronté est que la requête pour récupérer des données prend trop de temps. Pourrait même prendre plus d'une heure. Je suis au-dessus de l'erreur dans le pipeline environ 10 minutes dans l'exécution. –

+0

Il peut s'agir d'un problème de délai d'attente MYSQL. Poster 'SHOW VARIABLES GLOBALES COMME"% timeout% ";' sortie – ad4s

Répondre

1

Eh bien, si cette question est temps par défaut sur la configuration, vous pouvez ajouter ces scripts dans "activities" dans vos paramètres de pipeline pour définir délai à 1 heure :

"Policy": { 
     "concurrency": 1, 
     "timeout": "01:00:00" 
} 

---------- ---------- Mise à jour

l'ensemble JSON de configuration de pipeline comme celui-ci:

{ 
    "name": "ADFTutorialPipelineOnPrem", 
    "properties": { 
    "description": "This pipeline has one Copy activity that copies data from an on-prem SQL to Azure blob", 
    "activities": [ 
     { 
     "name": "CopyFromSQLtoBlob", 
     "description": "Copy data from on-prem SQL server to blob", 
     "type": "Copy", 
     "inputs": [ 
      { 
      "name": "EmpOnPremSQLTable" 
      } 
     ], 
     "outputs": [ 
      { 
      "name": "OutputBlobTable" 
      } 
     ], 
     "typeProperties": { 
      "source": { 
      "type": "SqlSource", 
      "sqlReaderQuery": "select * from emp" 
      }, 
      "sink": { 
      "type": "BlobSink" 
      } 
     }, 
     "Policy": { 
      "concurrency": 1, 
      "executionPriorityOrder": "NewestFirst", 
      "style": "StartOfInterval", 
      "retry": 0, 
      "timeout": "01:00:00" 
     } 
     } 
    ], 
    "start": "2016-07-05T00:00:00Z", 
    "end": "2016-07-06T00:00:00Z", 
    "isPaused": false 
    } 
} 

Cet exemple suivant suppose que vous avez créé une table « MyTable » dans MySQL et il contient une colonne appelée « timestampcolumn » pour le temps série data.Setting « externe »: « true » informe le service Data Factory que la table est externe à l'usine de données et n'est pas produit par une activité dans l'usine de données .:

{ 
     "name": "MySqlDataSet", 
     "properties": { 
      "published": false, 
      "type": "RelationalTable", 
      "linkedServiceName": "OnPremMySqlLinkedService", 
      "typeProperties": {}, 
      "availability": { 
       "frequency": "Hour", 
       "interval": 1 
      }, 
      "external": true, 
      "policy": { 
       "externalData": { 
        "retryInterval": "00:01:00", 
        "retryTimeout": "01:00:00", 
        "maximumRetry": 3 
       } 
      } 
     } 
    } 

Plus de détails sur la façon de créer pipeline pour l'usine de données Azure, reportez-vous à this document

en savoir plus sur l'ensemble tutoriel pour déplacer des données en Si vous utilisez MySQL sur Azure Data Factory, reportez-vous à this link.

+0

Essayé ceci. Toujours avoir la même erreur. Et je reçois une erreur dans 10-15 minutes d'exécution du pipeline. –

+0

@RuchitRami, Vous pouvez accéder à Diagramme pour afficher la fabrique de données et double-cliquer sur EmpOnPremSQLTable pour surveiller le pipeline. cliquez sur voir plus pour voir ce qui s'est passé sur votre pipeline. Si vous voyez un massage d'erreur, s'il vous plaît poster ici pour nous le faire savoir. –

+0

@RuchitRami, Vous pouvez publier vos scripts de votre pipeline avec la mise à jour de votre question si cela ne vous dérange pas. –