Tous les produits
Search
Centre de documentation

MaxCompute:Commandes Tunnel

Dernière mise à jour :Aug 19, 2026

Pour transférer de grands volumes de données entre votre environnement local et MaxCompute, utilisez les commandes Tunnel fournies par MaxCompute afin d'uploader et de télécharger des données. Ces commandes permettent de gérer des transferts de données par lots ou incrémentiels, améliorant ainsi l'efficacité et la sécurité lors des transferts à grande échelle. Cette rubrique explique comment utiliser les commandes Tunnel pour uploader et télécharger des données.

Description des commandes

  • Syntaxe

    tunnel <subcommand> [options] [args]

    Options

        upload (u)
        download (d)
        resume (r)
        show (s)
        purge (p)
        help (h)
        upsert(us)
  • Paramètres

    • upload : uploade des données vers une table MaxCompute. Vous ne pouvez uploader des fichiers que vers une seule table ou une seule partition à la fois. Pour une table partitionnée, vous devez spécifier la partition cible. Pour une table à partitions multiples, vous devez spécifier la partition de niveau le plus bas.

      -- Upload data from log.txt in the MaxCompute client's bin directory to the p1="b1",p2="b2" partition of the test_table in the test_project.
      tunnel upload log.txt test_project.test_table/p1="b1",p2="b2";
      
      -- Upload data from log.txt to the test_table table. The --scan=true parameter validates the data in log.txt against the table schema. If the data does not match, an error is reported and the upload is aborted.
      tunnel upload  log.txt  test_table --scan=true;
      
      -- Upload data from log.txt, located in a different path, to the p1="b1",p2="b2" partition of the test_table in the test_project.
      tunnel upload D:\test\log.txt test_project.test_table/p1="b1",p2="b2";
    • download : télécharge des données depuis une table MaxCompute. Vous ne pouvez télécharger des données que depuis une seule table ou partition vers un seul fichier local à la fois. Pour une table partitionnée, vous devez spécifier la partition source. Pour une table à partitions multiples, vous devez spécifier la partition de niveau le plus bas.

      -- Download data from the p1="b1",p2="b2" partition of test_project.test_table to the local file test_table.txt.
      tunnel download  test_project.test_table/p1="b1",p2="b2"  test_table.txt;
      -- Download data from the p1="b1",p2="b2" partition of test_project.test_table to a file at a different local path.
      tunnel download  test_project.test_table/p1="b1",p2="b2"  D:\test\test_table.txt;
    • resume : reprend le transfert de fichiers ou de répertoires interrompu en raison d'une déconnexion réseau ou d'un dysfonctionnement de Tunnel. Cette commande permet uniquement de reprendre des uploads de données. Un téléchargement ou un upload de données est appelé une session. Vous devez spécifier l'ID de session dans la commande resume avant de l'exécuter.

      tunnel resume;
    • show : affiche les informations historiques des tâches.

      -- Display the commands used in the last five data uploads or downloads. 
      tunnel show history -n 5;
      -- Display the logs of the last data upload or download. 
      tunnel show log;
    • purge : supprime les fichiers journaux Tunnel du répertoire de session. Par défaut, les journaux datant de plus de trois jours sont supprimés.

      -- Clear logs from the last five days. 
      tunnel purge 5;
    • help : obtient des informations d'aide.

    • upsert : écrit des données en utilisant la sémantique UPDATE et INSERT. Seules les tables Transaction Table 2.0 supportent l'écriture de données via l'instruction UPSERT.

      Si aucune donnée correspondante n'est trouvée dans la table de destination, les nouvelles données sont insérées. Si les données à écrire existent déjà, elles sont mises à jour dans la table.

      -- Upload data in the log.txt file to the p1="b1" and p2="b2" partitions of the test_table table that has two levels of partitions in the test_project project. The log.txt file is saved in the bin directory of the MaxCompute client. 
      tunnel upsert log.txt test_project.test_table/p1="b1",p2="b2";

Upload

  • Description

    Uploade des données locales vers une table MaxCompute en mode ajout (append).

    Remarque

    Mode ajout : si les données que vous souhaitez importer existent déjà dans la table MaxCompute, elles ne sont pas écrasées après l'exécution de la commande Upload. Dans ce cas, les données existantes et les données importées coexistent dans la table MaxCompute.

  • Syntaxe

    tunnel upload [options] <path> <[project.]table[/partition]>

    Format

    Available options:
     -acp,-auto-create-partition <ARG>   auto create target partition if not
                                         exists, default false
     -bs,-block-size <ARG>               block size in MiB, default 100
     -c,-charset <ARG>                   specify file charset, default ignore.
                                         set ignore to download raw data
     -cf,-csv-format <ARG>               use csv format (true|false), default
                                         false. When uploading in csv format,
                                         file splitting not supported.
     -cp,-compress <ARG>                 compress, default true
     -dbr,-discard-bad-records <ARG>     specify discard bad records
                                         action(true|false), default false
     -dfp,-date-format-pattern <ARG>     specify date format pattern, default
                                         yyyy-MM-dd HH:mm:ss
     -fd,-field-delimiter <ARG>          specify field delimiter, support
                                         unicode, eg \u0001. default ","
     -h,-header <ARG>                    if local file should have table
                                         header, default false
     -mbr,-max-bad-records <ARG>         max bad records, default 1000
     -ni,-null-indicator <ARG>           specify null indicator string,
                                         default ""(empty string)
     -ow,-overwrite <true | false>       overwrite specified table or
                                         partition, default: false
     -rd,-record-delimiter <ARG>         specify record delimiter, support
                                         unicode, eg \u0001. default "\r\n"
     -s,-scan <ARG>                      specify scan file
                                         action(true|false|only), default true
     -sd,-session-dir <ARG>              set session dir, default
                                         D:\software\odpscmd_public\plugins\dship
     -ss,-strict-schema <ARG>            specify strict schema mode. If false,
                                         extra data will be abandoned and
                                         insufficient field will be filled
                                         with null. Default true
     -t,-threads <ARG>                   number of threads, default 1
     -te,-tunnel_endpoint <ARG>          tunnel endpoint
     -time,-time <ARG>                   keep track of upload/download elapsed
                                         time or not. Default false
     -tz,-time-zone <ARG>                time zone, default local timezone:
                                         Asia/Shanghai
    Example:
        tunnel upload log.txt test_project.test_table/p1="b1",p2="b2"
  • Paramètres

    • Paramètres obligatoires

      • path

        Spécifie le chemin et le nom du fichier de données à uploader.

        Vous pouvez spécifier le chemin du fichier de deux manières : si le fichier se trouve dans le répertoire bin du client MaxCompute, définissez le paramètre path sur nomfichier.extension. Si le fichier se trouve dans un autre répertoire, tel que D:\test, définissez le paramètre path sur le chemin absolu, par exemple D:\test\nomfichier.extension. L'outil de ligne de commande Tunnel n'impose aucune limite de taille de fichier et supporte l'upload de fichiers volumineux. Pour optimiser l'upload de gros fichiers, vous pouvez utiliser le paramètre -bs pour ajuster la taille de chaque bloc de données. La valeur par défaut est de 100 MiB.

        Remarque

        Sur macOS, la valeur du paramètre path doit être un chemin absolu. Par exemple, si votre fichier se trouve dans le répertoire bin du client MaxCompute, définissez le paramètre path sur un chemin absolu, tel que /Users/nomutilisateur/MaxCompute/bin/nomfichier.extension.

      • [project.]table[/partition]

        Spécifie le nom de la table vers laquelle vous souhaitez uploader les données. Vous devez spécifier la partition de niveau le plus bas pour une table partitionnée. Si la table n'appartient pas au projet actuel, vous devez spécifier le projet où se trouve la table. Paramètres optionnels ## Show ## Resume

        • -acp

          Spécifie la partition vers laquelle vous souhaitez uploader les données. Si la partition spécifiée n'existe pas, elle est automatiquement créée. Valeur par défaut : False. -bs Spécifie la taille du bloc de données uploadé par Tunnel à chaque fois. Valeur par défaut : 100 MiB (1 MiB = 1024 × 1024 octets). -c Spécifie le format d'encodage du fichier de données. Par défaut, ce paramètre n'est pas spécifié et les données brutes sont téléchargées. -cf Indique si le fichier est au format CSV. Valeur par défaut : False. La commande Upload permet d'uploader uniquement des fichiers TXT et CSV. Les fichiers TXT sont uploadés par défaut. Si vous souhaitez uploader un fichier CSV, vous devez configurer le paramètre -cf et télécharger la dernière version du client MaxCompute.

        • -cp

          Indique s'il faut compresser le fichier de données local avant de l'uploader vers MaxCompute afin de réduire le trafic réseau. Valeur par défaut : True. -dbr Indique s'il faut ignorer les données erronées, telles que les colonnes supplémentaires, les colonnes manquantes ou les types de données de colonne non correspondants. Valeur par défaut : False.

          • True : ignore toutes les données qui ne correspondent pas à la définition de la table. Par défaut, 1000 enregistrements de données sont ignorés. Pour modifier le nombre d'enregistrements à ignorer, spécifiez le paramètre -mbr.

          • False : une erreur est renvoyée dès qu'une donnée erronée est détectée. Cela garantit que les données brutes de la table cible ne sont pas contaminées.

        • -dfp

          Spécifie le format des données DATETIME. Le format par défaut est yyyy-MM-dd HH:mm:ss. Si vous souhaitez spécifier des données DATETIME avec une précision à la milliseconde, utilisez le format yyyy-MM-dd HH:mm:ss.SSS. Pour plus d'informations sur le type de données DATETIME, consultez les Modifications des types de données. -fd Spécifie le délimiteur de colonne utilisé dans le fichier de données local. Valeur par défaut : virgule (,). -h Indique si le fichier de données à uploader contient un en-tête de table. Valeur par défaut : False. Cette valeur indique que le fichier de données ne peut pas contenir d'en-tête. Si vous définissez ce paramètre sur True, le fichier de données peut contenir un en-tête. Dans ce cas, le système ignore l'en-tête et uploade les données à partir de la deuxième ligne. -mbr Spécifie le nombre maximal d'enregistrements de données erronées autorisés. Ce paramètre doit être utilisé conjointement avec le paramètre -dbr et n'est valide que lorsque le paramètre -dbr est défini sur True. Spécifie le nombre maximal d'enregistrements erronés. Si le nombre d'enregistrements erronés dépasse la valeur spécifiée, l'upload s'arrête. Valeur par défaut : 1000. -ni Spécifie l'identifiant de données NULL. Valeur par défaut : chaîne vide. -ow Indique si les données uploadées écrasent la table ou la partition. Valeur par défaut : False. Cette valeur indique que les données sont uploadées en mode ajout. L'exemple suivant illustre cette opération.

          -- Create a partitioned table.
          CREATE TABLE IF NOT EXISTS sale_detail(
                shop_name     STRING,
                customer_id   STRING,
                total_price   DOUBLE)
          PARTITIONED BY (sale_date STRING,region STRING);
          
          ALTER TABLE sale_detail ADD PARTITION (sale_date='201312', region='hangzhou');
          
          -- Prepare a local data file D:\data.txt with the following content:
          shopx,x_id,100
          shopy,y_id,200
          
          -- Upload data to the partitioned table.
          tunnel upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou;
          
          -- Query the sale_detail table.
          SELECT * FROM sale_detail;
          
          -- The following result is returned:
          +------------+-------------+-------------+------------+------------+
          | shop_name  | customer_id | total_price | sale_date  | region     |
          +------------+-------------+-------------+------------+------------+
          | shopx      | x_id        | 100.0       | 201312     | hangzhou   |
          | shopy      | y_id        | 200.0       | 201312     | hangzhou   |
          +------------+-------------+-------------+------------+------------+
          
          -- Modify the content of data.txt to the following:
          shopx,x_id,300
          shopy,y_id,400
          
          -- Overwrite the data in the partition.
          tunnel upload -ow true data.txt sale_detail/sale_date=201312,region=hangzhou;
          
          -- Query the sale_detail table.
          SELECT * FROM sale_detail;
          
          -- The following result is returned:
          +------------+-------------+-------------+------------+------------+
          | shop_name  | customer_id | total_price | sale_date  | region     |
          +------------+-------------+-------------+------------+------------+
          | shopx      | x_id        | 300.0       | 201312     | hangzhou   |
          | shopy      | y_id        | 400.0       | 201312     | hangzhou   |
          +------------+-------------+-------------+------------+------------+
        • -rd

          Spécifie le délimiteur de ligne utilisé dans le fichier de données local. Valeur par défaut : \r\n. -s Indique s'il faut analyser le fichier de données local. Valeur par défaut : True.

          • True : le système analyse les données et commence l'importation uniquement si le format est correct.

          • False : le système importe les données sans analyse.

          • Only : le système analyse uniquement les données locales. Les données ne sont pas importées après l'analyse.

        • -sd

          Spécifie le répertoire de session. -ss Spécifie le mode de schéma strict. Valeur par défaut : True. Si vous définissez ce paramètre sur False, les données supplémentaires sont ignorées et les champs non spécifiés sont remplis avec NULL. -t Spécifie le nombre de threads. Valeur par défaut : 1. -te Spécifie l'endpoint de Tunnel. -time Indique si le temps d'upload est suivi. Valeur par défaut : False. -tz Spécifie le fuseau horaire. Valeur par défaut : fuseau horaire local, tel que Asia/Shanghai. Pour plus d'informations sur les fuseaux horaires, consultez la section Fuseaux horaires.

        • Affiche les historiques des opérations.

          • Syntaxe

            tunnel show history [-n <number>];

            -n <number> : spécifie le nombre d'entrées historiques à afficher.

          • Exemples

            Exemple 1 : Affiche les historiques. Par défaut, 500 enregistrements de données sont conservés.

            tunnel show history;

            Le résultat suivant est renvoyé :

            20230505xxxxxxxxxxxxxx0b0d5b3c  bad     'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -dbr true -time true'
            20230505xxxxxxxxxxxxxx0ad720a3  failed  'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -time true'
            20230505xxxxxxxxxxxxxx0ad5ca68  bad     'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -dbr true'
            ......

            Exemple 2 : Affiche les commandes utilisées lors des cinq derniers uploads ou téléchargements de données.

            tunnel show history -n 5;

            Le résultat suivant est renvoyé :

            20230505xxxxxxxxxxxxxx0aa48c4b  success 'download sale_detail/sale_date=201312,region=hangzhou result.txt'
            20230505xxxxxxxxxxxxxx0aa6165c  success 'download sale_detail/sale_date=201312,region=hangzhou result.txt'
            20230505xxxxxxxxxxxxxx0af11472  failed  'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false'
            20230505xxxxxxxxxxxxxx0b464374  success 'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false'
            20230505xxxxxxxxxxxxxx02dbb6bd  failed  'upload d:\data.txt sale_detail/sale_date="201312",region="hangzhou" -s false'
        • Affiche les journaux du dernier upload ou téléchargement de données.

          tunnel show log;
        • Description

          Reprend l'exécution des opérations historiques. Seuls les uploads de données peuvent être repris.

        • Syntaxe

          tunnel resume <session_id> [-force];
        • Paramètres

          • session_id

            Spécifie l'ID de la session dont l'upload a échoué. Ce paramètre est obligatoire.

          • -f

            Indique s'il faut forcer la reprise de l'exécution des opérations historiques. Ce paramètre est omis par défaut. Exemple Exécutez la commande suivante pour reprendre la session dont l'upload a échoué. Dans cette commande, 20150610xxxxxxxxxxx70a002ec60c représente l'ID de la session dont l'upload a échoué.

            tunnel resume 20150610xxxxxxxxxxx70a002ec60c -force;
            
            start resume
            20150610xxxxxxxxxxx70a002ec60c
            Upload session: 20150610xxxxxxxxxxx70a002ec60c
            Start upload:d:\data.txt
            Resume 1 blocks 
            2015-06-10 16:46:42     upload block: '1'
            2015-06-10 16:46:42     upload block complete, blockid=1
            upload complete, average speed is 0 KB/s
            OK

          Téléchargement

          • Description

            Télécharge les données d'une table MaxCompute ou le résultat d'exécution d'une instance spécifique vers un répertoire local.

            Vous devez disposer de l'autorisation Download avant d'utiliser Tunnel pour télécharger des données. Si vous ne possédez pas cette autorisation, contactez le propriétaire du projet ou un utilisateur ayant le rôle Super_Administrator pour effectuer l'autorisation. Pour plus d'informations sur l'octroi de l'autorisation Download, consultez la rubrique Contrôle d'accès basé sur les politiques.

          • Syntaxe

            odps@ project_name>tunnel help download;
            usage: tunnel download [options] <[project.]table[/partition]> <path>
            
                          download data to local file
             -c,-charset <ARG>                 specify file charset, default ignore.
                                               set ignore to download raw data
             -cf,-csv-format <ARG>             use csv format (true|false), default
                                               false. When uploading in csv format,
                                               file splitting not supported.
             -ci,-columns-index <ARG>          specify the columns index(starts from
                                               0) to download, use comma to split each
                                               index
             -cn,-columns-name <ARG>           specify the columns name to download,
                                               use comma to split each name
             -cp,-compress <ARG>               compress, default true
             -dfp,-date-format-pattern <ARG>   specify date format pattern, default
                                               yyyy-MM-dd HH:mm:ss
             -e,-exponential <ARG>             When download double values, use
                                               exponential express if necessary.
                                               Otherwise at most 20 digits will be
                                               reserved. Default false
             -fd,-field-delimiter <ARG>        specify field delimiter, support
                                               unicode, eg \u0001. default ","
             -h,-header <ARG>                  if local file should have table header,
                                               default false
                -limit <ARG>                   specify the number of records to
                                               download
             -ni,-null-indicator <ARG>         specify null indicator string, default
                                               ""(empty string)
             -rd,-record-delimiter <ARG>       specify record delimiter, support
                                               unicode, eg \u0001. default "\r\n"
             -sd,-session-dir <ARG>            set session dir, default
                                               D:\software\odpscmd_public\plugins\dship
             -t,-threads <ARG>                 number of threads, default 1
             -te,-tunnel_endpoint <ARG>        tunnel endpoint
             -time,-time <ARG>                 keep track of upload/download elapsed
                                               time or not. Default false
             -tz,-time-zone <ARG>              time zone, default local timezone:
                                               Asia/Shanghai
            usage: tunnel download [options] instance://<[project/]instance_id> <path>
            
                          download instance result to local file
             -c,-charset <ARG>                 specify file charset, default ignore.
                                               set ignore to download raw data
             -cf,-csv-format <ARG>             use csv format (true|false), default
                                               false. When uploading in csv format,
                                               file splitting not supported.
             -ci,-columns-index <ARG>          specify the columns index(starts from
                                               0) to download, use comma to split each
                                               index
             -cn,-columns-name <ARG>           specify the columns name to download,
                                               use comma to split each name
             -cp,-compress <ARG>               compress, default true
             -dfp,-date-format-pattern <ARG>   specify date format pattern, default
                                               yyyy-MM-dd HH:mm:ss
             -e,-exponential <ARG>             When download double values, use
                                               exponential express if necessary.
                                               Otherwise at most 20 digits will be
                                               reserved. Default false
             -fd,-field-delimiter <ARG>        specify field delimiter, support
                                               unicode, eg \u0001. default ","
             -h,-header <ARG>                  if local file should have table header,
                                               default false
                -limit <ARG>                   specify the number of records to
                                               download
             -ni,-null-indicator <ARG>         specify null indicator string, default
                                               ""(empty string)
             -rd,-record-delimiter <ARG>       specify record delimiter, support
                                               unicode, eg \u0001. default "\r\n"
             -sd,-session-dir <ARG>            set session dir, default
                                               D:\software\odpscmd_public\plugins\dshi
             -t,-threads <ARG>                 number of threads, default 1
             -te,-tunnel_endpoint <ARG>        tunnel endpoint
             -time,-time <ARG>                 keep track of upload/download elapsed
                                               time or not. Default false
             -tz,-time-zone <ARG>              time zone, default local timezone:
                                               Asia/Shanghai
            Example:
                tunnel download test_project.test_table/p1="b1",p2="b2" log.txt // Download data from a specific table.
                tunnel download instance://test_project/test_instance log.txt   // Download the execution result of a specific instance.
          • Paramètres

            • Paramètres obligatoires

              • path

                Spécifie le chemin d'enregistrement du fichier de données téléchargé.

                Deux options s'offrent à vous pour le chemin d'enregistrement. Vous pouvez télécharger le fichier directement dans le répertoire bin du client MaxCompute. Dans ce cas, définissez le paramètre path sur filename.extension. Vous pouvez également choisir un autre emplacement, comme le dossier test sur le lecteur D. Définissez alors le paramètre path sur D:\test\filename.extension.

              • [project.]table[/partition]

                Indique le nom de la table à télécharger. Pour une table partitionnée, vous devez spécifier la partition de niveau le plus bas. Si la table n'appartient pas au projet actuel, précisez le projet auquel elle appartient.

              • [project/]instance_id

                Indique l'ID d'une instance. Cela permet de télécharger le résultat d'exécution d'une instance spécifique.

            • Paramètres facultatifs

              • -c

                Définit le format d'encodage du fichier de données local. Ce paramètre est omis par défaut.

              • -cf

                Indique si le fichier est au format CSV. Valeur par défaut : False.

                Remarque

                Seuls les fichiers TXT et CSV peuvent être téléchargés. Le format TXT est utilisé par défaut. Pour télécharger un fichier CSV, définissez le paramètre -cf sur true et assurez-vous d'utiliser la dernière version du client MaxCompute. Lorsque -cf est activé, le délimiteur de champ doit être une virgule (,). La valeur définie via le paramètre -fd est alors ignorée.

              • -ci

                Spécifie les index des colonnes à télécharger (à partir de 0). Séparez les index par des virgules (,).

              • -cn

                Indique les noms des colonnes à télécharger. Séparez les noms par des virgules (,).

              • -cp

                Active ou désactive la compression du fichier local avant le téléchargement afin de réduire le trafic réseau. Valeur par défaut : True.

              • -dfp

                Définit le format des données DATETIME. Le format par défaut est yyyy-MM-dd HH:mm:ss.

              • -e

                Détermine si les valeurs DOUBLE téléchargées doivent utiliser la notation exponentielle. Sinon, jusqu'à 20 chiffres sont conservés. Valeur par défaut : False.

              • -fd

                Spécifie le délimiteur de colonne pour le fichier de données local. Valeur par défaut : virgule (,).

              • -h

                Indique si le fichier de données contient un en-tête de table. Valeur par défaut : False (aucun en-tête). Si vous définissez ce paramètre sur True, le fichier inclura un en-tête.

                Remarque

                Les options -h=true et threads>1 sont incompatibles. L'expression threads>1 signifie que le nombre de threads est supérieur à 1.

              • -limit

                Limite le nombre de lignes à télécharger.

              • -ni

                Définit l'indicateur de valeur NULL. Valeur par défaut : chaîne vide.

              • -rd

                Spécifie le délimiteur de ligne utilisé dans le fichier de données local. Valeur par défaut : \r\n.

              • -sd

                Définit le répertoire de session.

              • -t

                Indique le nombre de threads. Valeur par défaut : 1.

              • -te

                Spécifie l'endpoint de Tunnel.

              • -time

                Active ou désactive le suivi du temps écoulé lors du téléchargement. Valeur par défaut : False.

              • -tz

                Définit le fuseau horaire. Le fuseau horaire local est utilisé par défaut (par exemple, Asia/Shanghai).

          Purge

          • Description

            Supprime les fichiers journaux de Tunnel du répertoire de session.

          • Syntaxe

            tunnel purge [n];
          • Paramètres

            n : supprime les fichiers journaux de Tunnel plus anciens que le nombre de jours spécifié. Valeur par défaut : 3.

          Upsert

          • Description

            Cette opération combine les sémantiques UPDATE et INSERT pour l'écriture des données. Si aucune donnée correspondante n'est trouvée dans la table de destination, de nouvelles données sont insérées. Si les données existent déjà, elles sont mises à jour.

            Remarque
            • Pour exécuter la commande Upsert avec le client MaxCompute (odpscmd), utilisez la version 0.47 ou ultérieure.

            • Seules les tables Transaction Table 2.0 prennent en charge l'écriture de données via l'instruction UPSERT.

          • Syntaxe

            tunnel upsert[options] <path> <[project.]table[/partition]>

            Format :

            Available options:
            -acp,-auto-create-partition <ARG>   auto create target partition if not
                                                 exists, default false
             -bs,-block-size <ARG>               block size in MiB, default 100
             -c,-charset <ARG>                   specify file charset, default ignore.
                                                 set ignore to download raw data
             -cf,-csv-format <ARG>               use csv format (true|false), default
                                                 false. When uploading in csv format,
                                                 file splitting not supported.
             -cp,-compress <ARG>                 compress, default true
             -dbr,-discard-bad-records <ARG>     specify discard bad records
                                                 action(true|false), default false
             -dfp,-date-format-pattern <ARG>     specify date format pattern, default
                                                 yyyy-MM-dd HH:mm:ss
             -fd,-field-delimiter <ARG>          specify field delimiter, support
                                                 unicode, eg \u0001. default ","
             -h,-header <ARG>                    if local file should have table
                                                 header, default false
             -mbr,-max-bad-records <ARG>         max bad records, default 1000
             -ni,-null-indicator <ARG>           specify null indicator string,
                                                 default ""(empty string)
             -qn,-quota_name <ARG>               quota name
             -rd,-record-delimiter <ARG>         specify record delimiter, support
                                                 unicode, eg \u0001. default "\n"
             -sd,-session-dir <ARG>              set session dir, default
                                                 /Users/dingxin/Documents/debug/plugin
                                                 s/dship
             -ss,-strict-schema <ARG>            specify strict schema mode. If false,
                                                 extra data will be abandoned and
                                                 insufficient field will be filled
                                                 with null. Default true
             -te,-tunnel_endpoint <ARG>          tunnel endpoint
             -time,-time <ARG>                   keep track of upload/download elapsed
                                                 time or not. Default false
             -tz,-time-zone <ARG>                time zone, default local timezone:
                                                 Asia/Shanghai
            Example:
                tunnel upsert log.txt test_project.test_table/p1="b1",p2="b2"
          • Paramètres

            • Paramètres obligatoires

              • path

                Indique le chemin et le nom du fichier de données à charger.

                Deux méthodes permettent de spécifier le chemin du fichier. Si le fichier se trouve dans le répertoire bin du client MaxCompute, définissez le paramètre path sur filename.extension. S'il est situé ailleurs, par exemple dans D:\test, indiquez son chemin absolu, tel que D:\test\filename.extension. La commande Tunnel n'impose aucune limite de taille de fichier et prend en charge le chargement de fichiers dépassant 10 Mo. Pour optimiser le chargement de fichiers volumineux, ajustez la taille de chaque bloc de données (100 MiB par défaut) à l'aide du paramètre -bs.

                Remarque

                Sous macOS, le paramètre path accepte uniquement les chemins absolus. Par exemple, si les fichiers de données sont stockés dans le répertoire bin du client MaxCompute, vous devez définir le paramètre path selon le format D:\MaxCompute\bin \File name.File name extension.

              • [project.]table[/partition]

                Indique le nom de la table cible pour le chargement des données. Pour une table partitionnée, spécifiez la partition de niveau le plus bas. Si la table n'appartient pas au projet actuel, précisez le projet auquel elle appartient.

            • Paramètres facultatifs

              • -acp

                Crée automatiquement la partition cible si elle n'existe pas. Valeur par défaut : False.

              • -bs

                Définit la taille du bloc de données chargé par Tunnel à chaque itération. Valeur par défaut : 100 MiB (1 MiB = 1024 × 1024 octets).

              • -c

                Spécifie le format d'encodage du fichier de données. Par défaut, ce paramètre n'est pas spécifié et les données brutes sont téléchargées.

              • -cf

                Indique si le fichier est au format CSV. Valeur par défaut : False.

                Remarque

                L'instruction UPSERT permet de charger uniquement des fichiers TXT et CSV. Le format TXT est utilisé par défaut. Pour charger un fichier CSV, configurez le paramètre -cf et téléchargez la dernière version du client MaxCompute.

              • -cp

                Active ou désactive la compression du fichier de données local avant le chargement vers MaxCompute afin de réduire le trafic réseau. Valeur par défaut : True.

              • -dbr

                Détermine si les données incorrectes (colonnes supplémentaires, manquantes ou types non concordants) doivent être ignorées. Valeur par défaut : False.

                • True : ignore toutes les données ne correspondant pas à la définition de la table. Par défaut, 1 000 enregistrements sont ignorés. Modifiez cette limite via le paramètre -mbr.

                • False : renvoie une erreur dès qu'une donnée incorrecte est détectée. Cela garantit que les données brutes de la table cible ne sont pas corrompues.

              • -dfp

                Définit le format des données DATETIME. Le format par défaut est yyyy-MM-dd HH:mm:ss. Pour une précision à la milliseconde, utilisez le format yyyy-MM-dd HH:mm:ss.SSS. Pour plus d'informations sur le type de données DATETIME, consultez la rubrique Évolutions des types de données.

              • -fd

                Spécifie le délimiteur de colonne utilisé dans le fichier de données local. Valeur par défaut : virgule (,).

              • -h

                Indique si le fichier de données à charger contient un en-tête de table. Valeur par défaut : False (aucun en-tête autorisé). Si vous définissez ce paramètre sur True, le système ignore la première ligne (l'en-tête) et commence le chargement à partir de la deuxième ligne.

              • -mbr

                Définit le nombre maximal d'enregistrements incorrects autorisés. Ce paramètre doit être utilisé conjointement avec -dbr et n'est effectif que lorsque -dbr est défini sur True. Si le nombre d'erreurs dépasse cette limite, le chargement s'arrête. Valeur par défaut : 1 000.

              • -ni

                Définit l'indicateur de valeur NULL. Valeur par défaut : chaîne vide.

              • -qn : nom du quota Tunnel utilisé pour accéder à MaxCompute.

                Connectez-vous à la console MaxCompute, sélectionnez une région, puis accédez à Workspace > Quotas dans le volet de navigation de gauche pour consulter le nom du quota. Pour plus d'informations, consultez la rubrique Ressources de calcul - Gestion des quotas.

              • -rd

                Spécifie le délimiteur de ligne utilisé dans le fichier de données local. Valeur par défaut : \r\n.

              • -sd

                Définit le répertoire de session.

              • -ss

                Active ou désactive le mode de schéma strict. Valeur par défaut : True. Si ce paramètre est défini sur False, les données superflues sont ignorées et les champs manquants sont remplis avec NULL.

              • -te

                Spécifie l'endpoint de Tunnel. Pour plus d'informations sur les endpoints, consultez la rubrique Endpoints.

              • -time

                Active ou désactive le suivi du temps écoulé lors du chargement. Valeur par défaut : False.

              • -tz

                Définit le fuseau horaire. Valeur par défaut : fuseau horaire local (par exemple, Asia/Shanghai). Pour plus d'informations, consultez la rubrique Fuseaux horaires.

          Précautions

          • Le tableau suivant décrit les types de données.

            Type de données

            Description

            STRING

            Chaîne dont la longueur maximale est de 8 Mo.

            BOOLEAN

            Pour les chargements de fichiers, les valeurs acceptées sont True, False, 0 ou 1. Pour les téléchargements, seules les valeurs True ou False sont utilisées. La casse n'est pas significative.

            BIGINT

            Plage de valeurs : [-9223372036854775807,9223372036854775807].

            DOUBLE

            • Nombre à 16 chiffres.

            • Lors du chargement, les données de ce type sont exprimées en notation scientifique.

            • Lors du téléchargement, les données de ce type sont exprimées sous forme numérique.

            • Valeur maximale : 1,7976931348623157E308.

            • Valeur minimale : 4,9E-324.

            • Infini positif : Infinity.

            • Infini négatif : -Infinity.

            DATETIME

            Par défaut, les données de type DATETIME sont chargées selon le fuseau horaire GMT+8. Vous pouvez spécifier le format via la ligne de commande. Lors du chargement de ce type de données, le format temporel doit être indiqué. Pour plus d'informations, consultez la rubrique Évolutions des types de données.

            "yyyyMMddHHmmss": For example, "20140209101000" is used.
            "yyyy-MM-dd HH:mm:ss" (default format): For example, "2014-02-09 10:10:00" is used.
            "MM/dd/yyyy": For example, "09/01/2014" is used.

            Exemple :

            tunnel upload log.txt test_table -dfp "yyyy-MM-dd HH:mm:ss"
          • Null : chaque type de données peut contenir des valeurs nulles.

            • Par défaut, une chaîne vide indique une valeur nulle.

            • Le paramètre -null-indicator permet de spécifier une chaîne représentant une valeur nulle.

              tunnel upload log.txt test_table -ni "NULL"
          • Format d'encodage : vous pouvez spécifier le format d'encodage du fichier. Valeur par défaut : UTF-8.

            tunnel upload log.txt test_table -c "gbk"
          • Délimiteur : les commandes Tunnel permettent de personnaliser les délimiteurs de fichier. Utilisez -record-delimiter pour les délimiteurs de ligne et -field-delimiter pour les délimiteurs de colonne.

            • Un délimiteur de ligne ou de colonne peut contenir plusieurs caractères.

            • Un délimiteur de colonne ne peut pas contenir un délimiteur de ligne.

            • Seuls les caractères d'échappement suivants sont pris en charge dans la ligne de commande : \r, \n et \t.

            tunnel upload log.txt test_table -fd "||" -rd "\r\n"

          Références