Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à : SQL Server 2016 (13.x) et versions
ultérieures Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL database in Microsoft Fabric
Crée un objet de format de fichier externe définissant les données externes stockées dans Hadoop, Azure Blob Storage, Azure Data Lake Store, OneLake dans Microsoft Fabric, ou pour les flux d’entrée et de sortie associés aux flux externes. La création d’un format de fichier externe est un prérequis à la création d’une table externe. En créant un format de fichier externe, vous spécifiez la disposition des données référencées par une table externe. Pour créer une table externe, consultez CREATE EXTERNAL TABLE (Transact-SQL).
Les formats de fichier suivants sont pris en charge :
Texte délimité
La base de données SQL dans Microsoft Fabric ne prend en charge que le format CSV du texte délimité.
Hive RCFile
Cela ne s’applique pas à Azure Synapse Analytics, Azure SQL Managed Instance, Azure SQL Database, SQL Database dans Microsoft Fabric, ou SQL Server 2022 (16.x).
Orc Ruche
Cela ne s’applique pas à Azure Synapse Analytics, Azure SQL Managed Instance, Azure SQL Database, SQL Database dans Microsoft Fabric, ou SQL Server 2022 (16.x).
Parquet
JSON
S’applique uniquement à Azure SQL Edge. Pour plus d’informations sur l’utilisation
OPENROWSETde données JSON dans d’autres plateformes, consultez Importer des documents JSON dans SQL Server ou interroger des fichiers JSON à l’aide d’un pool SQL serverless dans Azure Synapse Analytics.Delta
Cela s’applique uniquement aux pools SQL serverless dans Azure Synapse Analytics, Azure SQL Database, SQL Server 2022 (16.x) et versions ultérieures. Vous pouvez interroger Delta Lake version 1.0. Les modifications introduites depuis, dans Delta Lake 1.2, comme le changement de nom des colonnes ne sont pas prises en charge. Si vous utilisez les versions supérieures de Delta avec des vecteurs de suppression, des points de contrôle v2 et d’autres fonctionnalités, envisagez d’utiliser d’autres moteurs de requête tels que le point de terminaison d’analytique Microsoft Fabric SQL pour Lakehouses.
Conventions de la syntaxe Transact-SQL
Syntaxe
-- Create an external file format for DELIMITED (CSV/TSV) files.
CREATE EXTERNAL FILE FORMAT file_format_name
WITH (
FORMAT_TYPE = DELIMITEDTEXT
[ , FORMAT_OPTIONS ( <format_options> [ ,...n ] ) ]
[ , DATA_COMPRESSION = {
'org.apache.hadoop.io.compress.GzipCodec'
}
]);
<format_options> ::=
{
FIELD_TERMINATOR = field_terminator
| STRING_DELIMITER = string_delimiter
| FIRST_ROW = integer -- Applies to: Azure Synapse Analytics and SQL Server 2022 and later versions
| DATE_FORMAT = datetime_format
| USE_TYPE_DEFAULT = { TRUE | FALSE }
| ENCODING = {'UTF8' | 'UTF16'}
| PARSER_VERSION = {'parser_version'}
}
Les arguments
file_format_name
Spécifie un nom pour le format de fichier externe.
FORMAT_TYPE
Spécifie le format des données externes.
FORMAT_TYPE = PARQUET
spécifie un format Parquet.
FORMAT_TYPE = ORC
Spécifie un format ORC. Cette option nécessite Hive version 0.11 ou version ultérieure dans le cluster Hadoop externe. Dans Hadoop, le format de fichier ORC offre une meilleure compression et de meilleures performances que le format de fichier RCFILE.
FORMAT_TYPE = RCFILE, SERDE_METHOD = SERDE_method
Spécifie un format de fichier d’enregistrement à colonnes (RcFile). Cette option nécessite que vous spécifiiez un sérialiseur Hive et la méthode de désérialiseur (SerDe). Cette exigence est la même si vous utilisez Hive/HiveQL dans Hadoop pour interroger les fichiers RC. Notez que la méthode SerDe respecte la casse.
Exemples de spécification RCFile avec les deux méthodes SerDe prises en charge par PolyBase :
FORMAT_TYPE = RCFILE, SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe'FORMAT_TYPE = RCFILE, SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe'
FORMAT_TYPE = TEXTE DELIMITÉ
Spécifie un format de texte avec des délimiteurs de colonnes, également appelés terminateurs de champ.
FORMAT_TYPE = JSON
Spécifie un format JSON. S’applique uniquement à Azure SQL Edge.
FORMAT_TYPE = DELTA
Spécifie un format Delta Lake. S’applique à : pools SQL serverless dans Azure Synapse Analytics et SQL Server 2022 (16.x)
FORMAT_OPTIONS
facultatif. Uniquement pour les types de données texte délimités.
Seuls les pools SQL serverless d’Azure Synapse Analytics prennent en charge PARSER_VERSION.
Les pools SQL serverless ne prennent pas en charge l’option DATE_FORMAT .
DATA_COMPRESSION = data_compression_method
Spécifie la méthode de compression appliquée aux données externes. Quand DATA_COMPRESSION elle n’est pas spécifiée, la valeur par défaut est des données non compressées.
Pour fonctionner correctement, les fichiers compressés Gzip doivent avoir l’extension de .gz fichier.
Le type de DELIMITEDTEXT format prend en charge cette méthode de compression : DATA_COMPRESSION = org.apache.hadoop.io.compress.GzipCodec
Options de format de texte délimité
Les options de format décrites dans cette section sont facultatives et s’appliquent uniquement aux fichiers texte délimité.
FIELD_TERMINATOR = field_terminator
S’applique uniquement aux fichiers texte délimité. La marque de fin de champ spécifie un ou plusieurs caractères qui indiquent la fin de chaque champ (colonne) dans le fichier texte délimité. La valeur par défaut est le caractère de canal |. Pour une prise en charge garantie, nous vous recommandons d’utiliser un ou plusieurs caractères ASCII.
Exemples :
FIELD_TERMINATOR = '|'FIELD_TERMINATOR = ' 'FIELD_TERMINATOR = ꞌ\tꞌFIELD_TERMINATOR = '~|~'
STRING_DELIMITER
STRING_DELIMITER = *string_delimiter*
Spécifie un caractère qui place les valeurs textuelles dans le fichier délimité par du texte. La valeur par défaut est la chaîne vide "". La valeur est STRING_DELIMITER fonctionnellement équivalente à l’option FIELDQUOTE dans la OPENROWSET BULK fonction.
Notes
Les tables Hadoop dans les pools SQL dédiés Synapse vous permettent de spécifier un ou plusieurs caractères dans STRING_DELIMITER. Dans un pool SQL serverless, vous ne pouvez utiliser qu’un seul caractère.
Exemples :
STRING_DELIMITER = '"'STRING_DELIMITER = '0x22'(Double guillemet hexagonal)STRING_DELIMITER = '*'STRING_DELIMITER = ꞌ,ꞌSTRING_DELIMITER = '0x7E0x7E'(Deux tildes, par exemple)~~- pris en charge dans le pool SQL dédié.
FIRST_ROW = first_row_int
S'applique à : Azure Synapse Analytics, SQL Server 2022 et versions ultérieures
Spécifie le numéro de la ligne qui est lue en premier dans tous les fichiers lors d’un chargement PolyBase. Ce paramètre peut prendre les valeurs allant de 1 à 15. Si la valeur est définie sur 2, la première ligne de chaque fichier (ligne d’en-tête) est ignorée lorsque les données sont chargées. Les lignes sont ignorées en présence de marques de fin de ligne (/r/n, /r, /n). Lorsque cette option est utilisée pour l’exportation, les lignes sont ajoutées aux données pour garantir que le fichier pourra être lu sans perte de données. Si la valeur est définie sur >2, la première ligne exportée est celle des noms de colonnes de la table externe.
DATE_FORMAT = datetime_format
Spécifie un format personnalisé pour toutes les données de date et d’heure qui peuvent apparaître dans un fichier texte délimité. Si le fichier source utilise des formats DateHeure par défaut, cette option n’est pas nécessaire. Un seul format DateHeure personnalisé est autorisé par fichier. Vous ne pouvez pas spécifier plusieurs formats DateHeure personnalisés dans un même fichier. Toutefois, vous pouvez utiliser plusieurs formats DateHeure si chacun d’eux est le format par défaut de son type de données dans la définition de la table externe.
Important
PolyBase utilise uniquement le format de date personnalisé pour l’importation des données. Il n’utilise pas le format personnalisé pour l’écriture de données dans un fichier externe.
Lorsque DATE_FORMAT n’est pas spécifié ou est une chaîne vide, PolyBase utilise les formats par défaut suivants :
datetime :
'yyyy-MM-dd HH:mm:ss'smalldatetime :
'yyyy-MM-dd HH:mm'date :
'yyyy-MM-dd'datetime2 :
'yyyy-MM-dd HH:mm:ss'datetimeoffset :
'yyyy-MM-dd HH:mm:ss'time :
'HH:mm:ss'
Important
La spécification de remplacements personnalisés DATE_FORMAT remplace tous les formats de type par défaut. Cela signifie que vous devrez avoir les mêmes formats de date dans toutes les cellules datetime, date et time de vos fichiers. Avec la substitution DATE_FORMAT, vous ne pouvez pas avoir de valeurs de date et d’heure dans un format différent.
Des exemples de formats de date se trouvent dans le tableau suivant :
Remarques sur ce tableau :
Les années, les mois et les jours peuvent avoir de nombreux formats et ordres différents. Le tableau présente uniquement le format ymd. Les mois peuvent avoir un ou deux chiffres, ou trois caractères. Les jours peuvent avoir un ou deux chiffres. Les années peuvent comporter deux ou quatre chiffres.
Les millisecondes (
fffffff) ne sont pas requises.amoupm(tt) n’est pas obligatoire. Par défaut, il s’agit deAM.
| Type de date | Exemple | Descriptif |
|---|---|---|
| datetime | DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fff |
En plus de l’année, du mois et du jour, ce format de date comprend 00-24 heures, 00-59 minutes, 00 à 59 secondes et trois chiffres pour les millisecondes. |
| datetime | DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffftt |
En plus de l’année, du mois et du jour, ce format de date comprend 00-12 heures, 00-59 minutes, 00-59 secondes, trois chiffres pour les millisecondes et AM, amPMou pm. |
| smalldatetime | DATE_FORMAT = yyyy-MM-dd HH:mm |
Outre l’année, le mois et le jour, ce format de date inclut de 00 à 23 heures et de 00 à 59 minutes. |
| smalldatetime | DATE_FORMAT = yyyy-MM-dd hh:mmtt |
En plus de l’année, du mois et du jour, ce format de date inclut 00-11 heures, 00-59 minutes, pas de secondes et AM, am, PMou pm. |
| date | DATE_FORMAT = yyyy-MM-dd |
L’année, le mois et le jour. Aucun élément d’heure n’est inclus. |
| date | DATE_FORMAT = yyyy-MMM-dd |
L’année, le mois et le jour. Lorsque le mois est spécifié avec MMM, la valeur d’entrée est une ou plusieurs des chaînes Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov et Dec. |
| datetime2 | DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff |
En plus de l’année, du mois et du jour, ce format de date comprend 00-23 heures, 00-59 minutes, 00 à 59 secondes et sept chiffres pour les millisecondes. |
| datetime2 | DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt |
En plus de l’année, du mois et du jour, ce format de date comprend 00-11 heures, 00-59 minutes, 00-59 secondes, sept chiffres pour les millisecondes et AM, amPMou pm. |
| datetimeoffset | DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff zzz |
Outre l’année, le mois et le jour, ce format de date inclut de 00 à 23 heures, de 00 à 59 minutes, de 00 à 59 secondes, 7 chiffres pour les millisecondes, ainsi que le décalage des fuseaux horaires que vous placez dans le fichier ainsi : {+|-}HH:ss. Par exemple, étant donné que l’heure de Los Angeles, sans l’heure d’été, est en retard de 8 heures par rapport à l’heure UTC, la valeur -08:00, dans le fichier d’entrée va spécifier le fuseau horaire de Los Angeles. |
| datetimeoffset | DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt zzz |
En plus de l’année, du mois et du jour, ce format de date inclut 00-11 heures, 00-59 minutes, 00 à 59 secondes, sept chiffres pour les millisecondes, (AM, amou PMpm), et le décalage du fuseau horaire. Voir la description à la ligne précédente. |
| temps | DATE_FORMAT = HH:mm:ss |
Il n’existe aucune valeur de date, seulement de 00 à 23 heures, de 00 à 59 minutes et de 00 à 59 secondes. |
Formats de date et d’heure pris en charge
Le format de fichier externe peut décrire un grand nombre de formats de date et d’heure :
| datetime | smalldatetime | date | datetime2 | datetimeoffset |
|---|---|---|---|---|
[M[M]]M-[d]d-[yy]yy HH:mm:ss[.fff] |
[M[M]]M-[d]d-[yy]yy HH:mm[:00] |
[M[M]]M-[d]d-[yy]yy |
[M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] |
[M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] zzz |
[M[M]]M-[d]d-[yy]yy hh:mm:ss[.fff][tt] |
[M[M]]M-[d]d-[yy]yy hh:mm[:00][tt] |
[M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] |
[M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] zzz |
|
[M[M]]M-[yy]yy-[d]d HH:mm:ss[.fff] |
[M[M]]M-[yy]yy-[d]d HH:mm[:00] |
[M[M]]M-[yy]yy-[d]d |
[M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] |
[M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] zzz |
[M[M]]M-[yy]yy-[d]d hh:mm:ss[.fff][tt] |
[M[M]]M-[yy]yy-[d]d hh:mm[:00][tt] |
[M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] |
[M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] zzz |
|
[yy]yy-[M[M]]M-[d]d HH:mm:ss[.fff] |
[yy]yy-[M[M]]M-[d]d HH:mm[:00] |
[yy]yy-[M[M]]M-[d]d |
[yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] |
[yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] zzz |
[yy]yy-[M[M]]M-[d]d hh:mm:ss[.fff][tt] |
[yy]yy-[M[M]]M-[d]d hh:mm[:00][tt] |
[yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] |
[yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] zzz |
|
[yy]yy-[d]d-[M[M]]M HH:mm:ss[.fff] |
[yy]yy-[d]d-[M[M]]M HH:mm[:00] |
[yy]yy-[d]d-[M[M]]M |
[yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] |
[yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] zzz |
[yy]yy-[d]d-[M[M]]M hh:mm:ss[.fff][tt] |
[yy]yy-[d]d-[M[M]]M hh:mm[:00][tt] |
[yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] |
[yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] zzz |
|
[d]d-[M[M]]M-[yy]yy HH:mm:ss[.fff] |
[d]d-[M[M]]M-[yy]yy HH:mm[:00] |
[d]d-[M[M]]M-[yy]yy |
[d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] |
[d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] zzz |
[d]d-[M[M]]M-[yy]yy hh:mm:ss[.fff][tt] |
[d]d-[M[M]]M-[yy]yy hh:mm[:00][tt] |
[d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] |
[d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] zzz |
|
[d]d-[yy]yy-[M[M]]M HH:mm:ss[.fff] |
[d]d-[yy]yy-[M[M]]M HH:mm[:00] |
[d]d-[yy]yy-[M[M]]M |
[d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] |
[d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] zzz |
[d]d-[yy]yy-[M[M]]M hh:mm:ss[.fff][tt] |
[d]d-[yy]yy-[M[M]]M hh:mm[:00][tt] |
[d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] |
[d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] zzz |
Détails :
Pour séparer les valeurs de mois, jour et année, vous devez utiliser l’un des séparateurs suivants :
-,/ou.. Par souci de simplicité, la table utilise uniquement le séparateur-.Pour spécifier le mois sous forme de texte, utilisez les trois caractères (ou plus). Les mois constitués d’un ou deux caractères sont interprétés comme des nombres.
Pour séparer les valeurs de temps, utilisez le symbole
:.Les lettres entre crochets sont facultatives.
Les lettres
ttdésignent [AM|PM|am|pm].AMest la valeur par défaut. Quandttelle est spécifiée, la valeur d’heure (hh) doit être comprise entre 0 et 12.Les lettres
zzzdésignent le décalage de fuseau horaire pour le fuseau horaire actuel du système au format{+|-}HH:ss].
USE_TYPE_DEFAULT = { VRAI | FAUX }
Spécifie comment gérer les valeurs manquantes dans les fichiers texte délimité lorsque PolyBase récupère les données à partir du fichier texte. La valeur par défaut est FALSE.
VRAI
Lors de la récupération des données à partir du fichier texte, stockez chaque valeur manquante à l’aide de la valeur par défaut du type de données de la colonne correspondante dans la définition de la table externe. Par exemple, remplacez une valeur manquante par :
0si la colonne est définie comme numérique. Les colonnes décimales ne sont pas prises en charge et génèrent une erreur.Une chaîne vide «» si la colonne est une colonne de chaîne.
1900-01-01si la colonne est une colonne de date.Dans Azure Synapse Analytics,
USE_TYPE_DEFAULT=truen’est pas pris en charge pourFORMAT_TYPE = DELIMITEDTEXT, PARSER_VERSION = '2.0'.
FAUX
Stockez toutes les valeurs manquantes en tant que
NULL. Toutes lesNULLvaleurs stockées à l’aide du motNULLdans le fichier texte délimité sont importées en tant que chaîneNULL.
ENCODING = {’UTF8’ | ’UTF16’}
Dans Azure Synapse Analytics et Analytics Platform System (PDW) (APS CU 7.4), PolyBase peut lire les fichiers texte délimités encodés en UTF8 et UTF16-LE.
Dans SQL Server, PolyBase ne prend pas en charge la lecture des fichiers UTF16.
Autorisations
Nécessite l’autorisation ALTER ANY EXTERNAL FILE FORMAT.
Notes
Le format de fichier externe est limité à la base de données dans SQL Server et Azure Synapse Analytics. Il est limité au serveur dans Analytics Platform System (PDW).
Le format Hadoop n’est pris en charge que dans SQL Server 2016, 2017 et 2019.
Les options de format sont toutes facultatives et s’appliquent uniquement aux fichiers texte délimité.
Lorsque les données sont stockées dans l’un des formats compressés, PolyBase décompresse d’abord les données avant de retourner les enregistrements de données.
La base de données SQL dans Microsoft Fabric ne prend en charge que le format CSV composé de texte délimité et de fichiers Parquet. La base de données SQL Fabric ne prend en charge OneLake dans Microsoft Fabric que comme source de données.
Limites
Dans les fichiers texte délimité, le séparateur de lignes doit être pris en charge par LineRecordReader de Hadoop. Elle doit être égale à \r, \n ou \r\n. Ces délimiteurs ne sont pas configurables par l’utilisateur.
Les combinaisons de méthodes SerDe prises en charge par RCFile et les méthodes de compression de données prises en charge sont répertoriées plus haut dans cet article. Toutes les combinaisons ne sont pas prises en charge.
Le nombre maximal de requêtes PolyBase simultanées est de 32. Lorsque 32 requêtes sont exécutées simultanément, chaque requête peut lire un maximum de 33 000 fichiers à partir de l’emplacement de fichier externe. Le dossier racine et chaque sous-dossier comptent également comme un fichier. Si le degré de concurrence est inférieur à 32, l’emplacement de fichier externe peut contenir plus de 33 000 fichiers.
En raison de la limitation concernant le nombre de fichiers de la table externe, nous vous recommandons de stocker moins de 30 000 fichiers à la racine et dans les sous-dossiers de l’emplacement de fichier externe. En outre, nous vous recommandons de limiter au maximum le nombre de sous-dossiers dans le répertoire racine. Lorsque trop de fichiers sont référencés, une exception d’insuffisance de mémoire Java Virtual Machine peut être levée.
En cas d’exportation de données vers Hadoop ou vers le Stockage Blob Azure via PolyBase, seules les données sont exportées, et non les noms de colonnes (métadonnées), comme le définit la commande CREATE EXTERNAL TABLE.
Verrouillage
Prend un verrou partagé sur l’objet EXTERNAL FILE FORMAT.
Performances
L’utilisation de fichiers compressés présente l’inconvénient de devoir transférer moins de données entre la source de données externe et SQL Server, tout en augmentant l’utilisation du processeur pour compresser et décompresser les données.
Les fichiers texte compressés avec GZip ne sont pas fractionnables. Pour améliorer les performances des fichiers texte compressés avec Gzip, nous vous recommandons de générer plusieurs fichiers et de les stocker dans le même répertoire de la source de données externe. Cette structure de fichiers permet à PolyBase de lire et de décompresser les données plus rapidement à l’aide de plusieurs processus de lecture et de décompression. Le nombre idéal de fichiers compressés correspond au nombre maximal de processus de lecteur de données par nœud de calcul. Dans SQL Server
Dans Analytics Platform System (PDW), le nombre maximal de processus de lecteur de données est de 8 par nœud. Dans Azure Synapse Analytics, le nombre maximal de processus de lecteur de données est de 20 lecteurs par nœud.
Exemples
R. Créer un format de fichier externe DELIMITEDTEXT
Cet exemple crée un format de fichier externe nommé textdelimited1 pour un fichier texte délimité. Les options répertoriées pour FORMAT_OPTIONS spécifient que les champs du fichier doivent être séparés par le caractère de canal |. Le fichier texte est également compressé avec le codec Gzip. Si DATA_COMPRESSION ce n’est pas spécifié, le fichier texte n’est pas compressé.
La méthode de compression pour un fichier texte délimité peut être le Codec par défaut org.apache.hadoop.io.compress.DefaultCodec ou le Codec Gzip, org.apache.hadoop.io.compress.GzipCodec.
CREATE EXTERNAL FILE FORMAT textdelimited1
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (
FIELD_TERMINATOR = '|',
DATE_FORMAT = 'MM/dd/yyyy' ),
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.GzipCodec'
);
B. Créer un format de fichier externe RCFile
L’exemple crée un format de fichier pour un RCFile qui utilise la méthode serialization/deserializationorg.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe. Il spécifie également l’utilisation du Codec par défaut pour la méthode de compression des données. Si DATA_COMPRESSION ce n’est pas spécifié, la valeur par défaut n’est pas de compression.
CREATE EXTERNAL FILE FORMAT rcfile1
WITH (
FORMAT_TYPE = RCFILE,
SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe',
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.DefaultCodec'
);
Chapitre C. Créer un format de fichier externe ORC
Cet exemple crée un format de fichier externe pour un fichier ORC qui compresse les données avec la méthode de compression des données org.apache.io.compress.SnappyCodec. Si DATA_COMPRESSION ce n’est pas spécifié, la valeur par défaut n’est pas de compression.
CREATE EXTERNAL FILE FORMAT orcfile1
WITH (
FORMAT_TYPE = ORC,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
D. Créer un format de fichier externe PARQUET
Cet exemple crée un format de fichier externe pour un fichier Parquet qui compresse les données avec la méthode de compression des données org.apache.io.compress.SnappyCodec. Si DATA_COMPRESSION ce n’est pas spécifié, la valeur par défaut n’est pas de compression.
CREATE EXTERNAL FILE FORMAT parquetfile1
WITH (
FORMAT_TYPE = PARQUET,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
E. Créer un fichier texte délimité qui ignore la ligne d’en-tête
S’applique à : Azure Synapse Analytics, et SQL Server 2022 (16.x) et versions ultérieures.
Cet exemple crée un format de fichier externe pour un fichier CSV avec une seule ligne d’en-tête. Pour plus d’informations, consultez Virtualiser le fichier CSV avec PolyBase.
CREATE EXTERNAL FILE FORMAT skipHeader_CSV
WITH (FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS(
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
FIRST_ROW = 2,
USE_TYPE_DEFAULT = True)
);
F. Créer un format de fichier externe JSON
S’applique à : Azure SQL Edge.
Cet exemple crée un format de fichier externe pour un fichier JSON qui compresse les données avec la méthode de compression des données org.apache.io.compress.SnappyCodec. Si DATA_COMPRESSION ce n’est pas spécifié, la valeur par défaut n’est pas de compression. Cet exemple s’applique à Azure SQL Edge et n’est actuellement pas pris en charge pour les autres produits SQL.
CREATE EXTERNAL FILE FORMAT jsonFileFormat
WITH (
FORMAT_TYPE = JSON,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
G. Créer un format de fichier externe de table delta
Cet exemple crée un format de fichier externe pour le format de fichier de type table delta. Cet exemple s’applique à SQL Server 2022 (16.x). Pour plus d’informations, consultez Virtualize delta table with PolyBase.
CREATE EXTERNAL FILE FORMAT DeltaFileFormat
WITH (
FORMAT_TYPE = DELTA
);