Requêtes fédérées Cloud SQL

Cette page explique comment interroger des données dans Cloud SQL à partir de BigQuery à l'aide de requêtes fédérées.

Présentation

La fédération de BigQuery et Cloud SQL permet à BigQuery d'interroger les données résidant dans Cloud SQL en temps réel, sans avoir à copier ni déplacer de données. La fédération de requêtes est compatible aussi bien avec les instances MySQL (deuxième génération) que PostgreSQL dans Cloud SQL.

Une fois la configuration initiale unique effectuée, vous pouvez rédiger une requête à l'aide de la fonction SQL EXTERNAL_QUERY().

Avant de commencer

Activer le service de connexion BigQuery

  1. Ouvrez la page API de connexion BigQuery dans la bibliothèque d'API.
  2. Dans le menu déroulant, sélectionnez le projet contenant votre source de données externe.
  3. Cliquez sur le bouton ACTIVER.

    API de connexion BigQuery

Compte de service

Un compte de service est automatiquement créé lorsque vous activez l'API BigQuery Connection. Lorsque vous activez l'API BigQuery Connection dans un projet disposant de votre source de données Cloud SQL, les rôles suivants sont appliqués:

Rôle Description
cloudsql.client Connexion à une instance Cloud SQL
logging.logWriter Écriture dans cloud-logging
metrics.metricWriter Écriture dans cloud-monitoring

Pour plus d'informations sur les comptes de service, consultez la page Agents de service.

Adresse IP publique

La fédération de BigQuery et Cloud SQL ne fonctionne qu'avec les instances Cloud SQL disposant d'une connectivité IP publique. Veuillez configurer la connectivité IP publique sur votre instance Cloud SQL.

Configurer les connexions à la base de données Cloud SQL

Une fois l'API BigQuery Connection activée, créez une connexion à la base de données Cloud SQL.

Console

  1. Pour créer une ressource de connexion, accédez à la page BigQuery dans Cloud Console.

    Accéder à BigQuery

  2. Dans le menu Ajouter des données, sélectionnez Source de données externe.

    Créer une ressource de connexion

  3. Dans le volet Source de données externes, saisissez les informations suivantes :

    • Dans le champ Type de connexion, sélectionnez le type de source, par exemple MySQL ou Postgres.
    • Dans le champ Connection ID (ID de connexion), saisissez un identifiant pour la ressource de connexion. Les lettres, les chiffres et les traits de soulignement sont autorisés.
    • Pour Emplacement de connexion, sélectionnez un emplacement (ou une région) BigQuery compatible avec votre région de source de données externe.
    • (Facultatif) Dans le champ Nom descriptif, saisissez un nom clair pour identifier la connexion, tel que My connection resource. Le nom descriptif peut être n'importe quelle valeur permettant d'identifier la ressource de connexion si vous devez la modifier par la suite.
    • (Facultatif) : Dans le champ Description, saisissez une description de la ressource de connexion.
    • Si vous avez choisi Cloud SQL MySQL ou Postgres comme type de connexion, pour l'ID de l'instance Cloud SQL, saisissez lenom de l'instance Cloud SQL complet, généralement au formatproject-id:location-id:instance-id. Vous pouvez trouver l'ID d'instance sur la page des détails de l'instance Cloud SQL que vous souhaitez interroger.
    • Dans le champ Nom de la base de données, saisissez le nom de la base de données.
    • Comme Nom d'utilisateur, saisissez le nom d'utilisateur de la base de données.
    • Dans le champ Mot de passe, renseignez le mot de passe d'accès à la base de données.

      • (Facultatif) Cochez la case Show password (Afficher le mot de passe) pour révéler le mot de passe.
      .

      Nouvelle ressource de connexion

  4. Cliquez sur Create connection (Créer une connexion).

bq

Saisissez la commande bq mk, puis indiquez l'option de connexion --connection. Les paramètres suivants sont également requis :

  • --connection_type
  • --properties
  • --connection_credential
  • --project_id
  • --location

Les options suivantes sont facultatives :

  • --display_name : nom descriptif de la connexion.
  • --description : description de la connexion.

L'ID de connexion est un paramètre facultatif qui peut être ajouté en tant que dernier argument de la commande utilisée pour le stockage en interne. Si aucun ID de connexion n'est fourni, un ID unique est généré automatiquement. L'ID de connexion peut contenir des lettres, des chiffres et des traits de soulignement.

    bq mk --connection --display_name='friendly name' --connection_type=TYPE \
      --properties=PROPERTIES --connection_credential=CREDENTIALS \
      --project_id=PROJECT_ID --location=LOCATION \
      CONNECTION_ID

Remplacez l'élément suivant :

  • TYPE: type de la source de données externe.
  • PROPERTIES : les paramètres de la connexion créée au format JSON. Exemple : --properties='{"param":"param_value"}'. Pour créer une ressource de connexion, vous devez fournir les paramètres instanceID, database et type.
  • CREDENTIALS : les paramètres username et password.
  • PROJECT_ID : ID de votre projet.
  • LOCATION : région où se trouve votre instance Cloud SQL.
  • CONNECTION_ID : identifiant de la connexion.

Par exemple, la commande suivante crée une ressource de connexion nommée "my_new_connection" (nom descriptif : "My new connection") dans un projet ayant l'ID federation-test.

bq mk --connection --display_name='friendly name' --connection_type='CLOUD_SQL' \
  --properties='{"instanceId":"federation-test:us-central1:mytestsql","database":"mydatabase","type":"MYSQL"}' \
  --connection_credential='{"username":"myusername", "password":"mypassword"}' \
  --project_id=federation-test --location=us my_connection_id

API

Au sein de l'API BigQuery Connection, vous pouvez appeler CreateConnection dans ConnectionService pour instancier une connexion. Pour en savoir plus, consultez la page sur les bibliothèques clientes.

Java

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Java décrite dans le guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Java.

import com.google.cloud.bigquery.connection.v1.CloudSqlCredential;
import com.google.cloud.bigquery.connection.v1.CloudSqlProperties;
import com.google.cloud.bigquery.connection.v1.Connection;
import com.google.cloud.bigquery.connection.v1.CreateConnectionRequest;
import com.google.cloud.bigquery.connection.v1.LocationName;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import java.io.IOException;

// Sample to create a connection with cloud MySql database
public class CreateConnection {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    String connectionId = "MY_CONNECTION_ID";
    String database = "MY_DATABASE";
    String instance = "MY_INSTANCE";
    String instanceLocation = "MY_INSTANCE_LOCATION";
    String username = "MY_USERNAME";
    String password = "MY_PASSWORD";
    String instanceId = String.format("%s:%s:%s", projectId, instanceLocation, instance);
    CloudSqlCredential cloudSqlCredential =
        CloudSqlCredential.newBuilder().setUsername(username).setPassword(password).build();
    CloudSqlProperties cloudSqlProperties =
        CloudSqlProperties.newBuilder()
            .setType(CloudSqlProperties.DatabaseType.MYSQL)
            .setDatabase(database)
            .setInstanceId(instanceId)
            .setCredential(cloudSqlCredential)
            .build();
    Connection connection = Connection.newBuilder().setCloudSql(cloudSqlProperties).build();
    createConnection(projectId, location, connectionId, connection);
  }

  public static void createConnection(
      String projectId, String location, String connectionId, Connection connection)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      LocationName parent = LocationName.of(projectId, location);
      CreateConnectionRequest request =
          CreateConnectionRequest.newBuilder()
              .setParent(parent.toString())
              .setConnection(connection)
              .setConnectionId(connectionId)
              .build();
      Connection response = client.createConnection(request);
      System.out.println("Connection created successfully :" + response.getName());
    }
  }
}

Pour en savoir plus sur l'affichage, la liste, le partage, la mise à jour et la suppression des ressources de connexion, consultez la section Utiliser les connexions.

Exemple

Supposons que vous stockez une table de clients dans BigQuery ainsi qu'une table de ventes dans Cloud SQL et que vous souhaitez joindre les deux tables dans une même requête. L'exemple suivant envoie une requête fédérée à une base de données Cloud SQL nommée orders et joint les résultats à une table BigQuery nommée mydataset.customers.

SELECT c.customer_id, c.name, rq.first_order_date
FROM mydataset.customers AS c
LEFT OUTER JOIN EXTERNAL_QUERY(
  'us.connection_id',
  '''SELECT customer_id, MIN(order_date) AS first_order_date
  FROM orders
  GROUP BY customer_id''') AS rq ON rq.customer_id = c.customer_id
GROUP BY c.customer_id, c.name, rq.first_order_date;

L'exemple de requête comprend trois parties :

  1. Grâce à la fonction EXTERNAL_QUERY(), exécution de la requête externe SELECT customer_id, MIN(order_date) AS first_order_date FROM orders GROUP BY customer_id dans la base de données PostgreSQL opérationnelle afin d'obtenir la date de première commande pour chaque client.
  2. Jointure par customer_id de la table des résultats de la requête externe avec la table des clients dans BigQuery.
  3. Sélection des informations client et de la date de la première commande.

Régions où le service est disponible

Le tableau suivant présente les régions disponibles pour BigQuery et Cloud SQL.

Zones régionales

Description de la région Région Cloud SQL Région BigQuery compatible Multirégional BigQuery compatible
Amériques
Iowa us-central Non compatible : dans cette région, les instances Cloud SQL sont en V1.
Les requêtes fédérées ne sont compatibles qu'avec les instances V2 de Cloud SQL.
Iowa us-central1 us-central1 US
Las Vegas us-west4 us-west4 US
Los Angeles us-west2 us-west2 US
Montréal northamerica-northeast1 northamerica-northeast1 US
Virginie du Nord us-east4 us-east4 US
Oregon us-west1 us-west1 US
Salt Lake City us-west3 us-west3 US
São Paulo southamerica-east1 southamerica-east1
Caroline du Sud us-east1 us-east1 US
Toronto northamerica-northeast2 northamerica-northeast2 US
Europe
Belgique europe-west1 europe-west1 EU
Finlande europe-north1 europe-north1 EU
Francfort europe-west3 europe-west3 EU
Londres europe-west2 europe-west2 EU
Pays-Bas europe-west4 europe-west4 EU
Varsovie europe-central2 europe-central2 EU
Zurich europe-west6 europe-west6 EU
Asie-Pacifique
Delhi asia-south2 asia-south2
Hong Kong asia-east2 asia-east2
Jakarta asia-southeast2 asia-southeast2
Melbourne australia-southeast2 australia-southeast2
Mumbai asia-south1 asia-south1
Osaka asia-northeast2 asia-northeast2
Séoul asia-northeast3 asia-northeast3
Singapour asia-southeast1 asia-southeast1
Sydney australia-southeast1 australia-southeast1
Taïwan asia-east1 asia-east1
Tokyo asia-northeast1 asia-northeast1

Zones multirégionales

Les emplacements multirégionaux ne sont pas disponibles pour les instances Cloud SQL. Les requêtes multirégionales Cloud SQL ne peuvent pas être utilisées pour les requêtes fédérées.

Les données situées dans la zone multirégionale EU ne sont pas stockées dans les centres de données des régions europe-west2 (Londres) ou europe-west6 (Zurich).

Limites

Les requêtes fédérées Cloud SQL sont soumises aux limitations suivantes :

  • Performances La requête fédérée risque de ne pas être aussi rapide que d'interroger uniquement le stockage BigQuery. BigQuery doit attendre que la base de données source exécute la requête externe et déplace les données de façon temporaire de la source de données externe vers BigQuery. En outre, la base de données source peut ne pas être optimisée pour des requêtes analytiques complexes.

  • Les requêtes fédérées sont en lecture seule. La requête externe qui sera exécutée dans la base de données source doit être en lecture seule. Par conséquent, les instructions LMD ou LDD ne sont pas compatibles.

  • Types de données non compatibles. Si votre requête externe contient un type de données non géré dans BigQuery, la requête échoue immédiatement. Vous pouvez convertir le type de données non géré en un autre type de données compatible.

  • Instances Cloud SQL limitées. Les requêtes fédérées ne sont compatibles qu'avec l'instance Cloud SQL V2 avec adresse IP publique (et non privée).

Quotas et limites

En plus des limites et quotas généraux des requêtes fédérées, les bases de données Cloud SQL sont soumises aux limites suivantes.

  • Requête fédérée interrégionale : si l'emplacement de traitement des requêtes BigQuery et l'emplacement de la source de données externe sont différents, il s'agit d'une requête interrégionale. Vous pouvez exécuter jusqu'à 1 To de requêtes interrégionales par projet et par jour. Voici un exemple de requête interrégionale.
    • L'instance Cloud SQL se trouve dans us-west1, tandis que la connexion BigQuery est basée dans l'emplacement multirégional US. L'emplacement de traitement de la requête BigQuery est US.
  • Quotas : les utilisateurs doivent contrôler les quotas de requêtes dans la source de données externe Cloud SQL. Il n'y a pas de paramètres de quotas distincts pour les requêtes fédérées. Pour isoler la charge de travail, il est recommandé de n'interroger qu'une instance dupliquée de base de données avec accès en lecture.
  • Les quotas et limites Cloud SQL MySQL et PostgreSQL s'appliquent.

Référence

Afficher un schéma de table Cloud SQL

Vous pouvez utiliser la fonction EXTERNAL_QUERY() pour interroger les tables "information_schema" afin d'accéder aux métadonnées de la base de données, par exemple pour répertorier l'ensemble des tables de la base de données ou afficher le schéma d'une table. Les exemples de requête "information_schema" suivants fonctionnent à la fois avec MySQL et PostgreSQL. Pour en savoir plus, consultez les pages concernant les tables "information_schema" dans MySQL et les tables "information_schema" dans PostgreSQL.

-- List all tables in a database.
SELECT * FROM EXTERNAL_QUERY("connection_id",
"select * from information_schema.tables;");
-- List all columns in a table.
SELECT * FROM EXTERNAL_QUERY("connection_id",
"select * from information_schema.columns where table_name='x';");

Détails de la ressource de connexion

Nom de propriété Valeur Description
name chaîne Nom de la ressource de connexion au format : project_id.location_id.connection_id.
location chaîne Emplacement de la connexion, identique à l'emplacement de l'instance Cloud SQL, à quelques exceptions près : Cloud SQL us-central1 est mappé sur BigQuery US, tandis que Cloud SQL europe-west1 est mappé sur BigQuery EU.
friendlyName chaîne Nom d'affichage facile à lire pour la connexion.
description chaîne Description de la connexion.
cloudSql.type chaîne Valeurs possibles : "POSTGRES" ou "MYSQL".
cloudSql.instanceId chaîne Nom de l'instance Cloud SQL, généralement au format :

Project-id:location-id:instance-id

Vous trouverez l'ID de l'instance sur la page de détails de l'instance Cloud SQL.
cloudSql.database chaîne Base de données Cloud SQL à laquelle vous souhaitez vous connecter.

Détails de la ressource des identifiants de connexion

Nom de propriété Valeur Description
username chaîne Nom d'utilisateur de la base de données
password chaîne Mot de passe de la base de données

Mappages des types de données

Lorsque vous exécutez une requête fédérée Cloud SQL, les données de Cloud SQL (qui possèdent des types de données MySQL ou PostgreSQL) sont converties vers les types SQL standards de BigQuery. Vous trouverez ci-dessous les mappages des types de données de MySQL vers BigQuery et de PostgreSQL vers BigQuery.

Voici quelques points à retenir concernant ces mappages :

  • La plupart des types de données MySQL peuvent être mis en correspondance avec le même type de données BigQuery, à quelques exceptions près, telles que decimal, timestamp et time.
  • PostgreSQL accepte de nombreux types de données non standards, qui ne sont pas gérés dans BigQuery, par exemple money,path, uuid, boxer, etc.
  • Les types de données numériques dans MySQL et PostgreSQL sont mappés par défaut sur la valeur NUMERIC BigQuery. La plage de valeurs NUMERIC de BigQuery est moins étendue que celles de MySQL et PostgreSQL. Ils peuvent également être mappés sur les valeurs BIGNUMERIC, FLOAT64, ou STRING avec l'option "default_type_for_decimal_columns" dans les options EXTERNAL_QUERY.

Traiter les erreurs

Si votre requête externe contient un type de données non géré dans BigQuery, la requête échoue immédiatement. Vous pouvez convertir le type de données non géré vers un autre type de données MySQL/PostgreSQL compatible.

Vous pouvez convertir le type de données non géré vers un autre type de données MySQL ou PostgreSQL compatible.

  • Type de données MySQL non compatible

    • Message d'erreur : Invalid table-valued function external_query Found unsupported MySQL type in BigQuery at [1:15]
    • Types non compatibles : GEOMETRY, BIT
    • Solution : Convertissez le type de données non compatible en STRING.
    • Exemple : SELECT ST_AsText(ST_GeomFromText('POINT(1 1)')); Cette commande convertit le type de données GEOMETRY, non compatible, en STRING.
  • Type de données PostgreSQL non compatible

    • Message d'erreur : Invalid table-valued function external_query Postgres type (OID = 790) is not supported now at [1:15]
    • Types non compatibles : money, time with time zone, inet, path, pg_lsn, point, polygon, tsquery, tsvector, txid_snapshot, uuid, box, cidr, circle, interval, jsonb, line, lseg, macaddr, macaddr8
    • Solution : Convertissez le type de données non compatible en STRING.
    • Exemple : SELECT CAST('12.34'::float8::numeric::money AS varchar(30)); Cette commande convertit le type de données money, non compatible, en STRING.

Mappage des types MySQL vers les types BigQuery

Type MySQL Description pour MySQL Type BigQuery Différence entre les types
Entier
ENT 4 octets, 2^32 - 1 INT64
TINYINT 1 octet, 2^8 - 1 INT64
SMALLINT 2 octets, 2^16 - 1 INT64
MEDIUMINT 3 octets, 2^24 - 1 INT64
BIGINT 8 octets, 2^64 - 1 INT64
UNSIGNED BIGINT 8 octets, 2^64 - 1 NUMERIC
Valeurs numériques exactes
DECIMAL (M,D) Un nombre décimal représenté (M,D), où M est le nombre total de chiffres avant la virgule et D le nombre de décimales.
M <= 65
NUMERIC, BIGNUMERIC, FLOAT64 ou STRING

DECIMAL (M,D) est mappé sur NUMERIC par défaut, ou peut être mappé sur BIGNUMERIC, FLOAT64 ou STRING avec l'option default_type_for_decimal_columns.
Valeurs numériques approchées
FLOAT (M,D) 4 octets, M <= 23 FLOAT64
DOUBLE (M,D) 8 octets, M <= 53 FLOAT64
Date et heure
TIMESTAMP De '1970-01-01 00:00:01'UTC à ' 2038-01-19 03:14:07'UTC TIMESTAMP Une valeur TIMESTAMP de MySQL est récupérée au fuseau horaire UTC, quelle que soit l'origine de l'appel BigQuery.
DATETIME '1000-01-01 00:00:00' à '9999-12-31 23:59:59'. DATETIME
DATE De '1000-01-01' à '9999-12-31' DATE
TIME Heure au format "HH:MM:SS"
De "-838:59:59" à "838:59:59"
TIME
La plage de valeurs TIME de BigQuery est moins étendue, de 00:00:00 à 23:59:59.
ANNÉE INT64
Caractères et chaînes de caractères
ENUM Objet chaîne ayant une valeur sélectionnée parmi une liste de valeurs autorisées. STRING
CHAR (M) Chaîne de longueur fixe comprise entre 1 et 255 caractères. STRING
VARCHAR (M) Chaîne de longueur variable comprise entre 1 et 255 caractères. STRING
TEXT Champ d'une longueur maximale de 65 535 caractères. STRING
TINYTEXT Colonne TEXT d'une longueur maximale de 255 caractères. STRING
MEDIUMTEXT Colonne TEXT d'une longueur maximale de 16 777 215 caractères. STRING
LONGTEXT Colonne TEXT d'une longueur maximale de 4 294 967 295 caractères. STRING
Binary
Blob Objet binaire de grande taille (Binary Large Object) d'une longueur maximale de 65 535 caractères. BYTES
MEDIUM_BLOB BLOB d'une longueur maximale de 16 777 215 caractères. BYTES
LONG_BLOB BLOB d'une longueur maximale de 4 294 967 295 caractères. BYTES
TINY_BLOB BLOB d'une longueur maximale de 255 caractères BYTES
BINARY Chaîne binaire de longueur fixe comprise entre 1 et 255 caractères BYTES
VARBINARY Chaîne binaire de longueur variable comprise entre 1 et 255 caractères BYTES
Autre
SET Lorsque vous déclarez la colonne SET, prédéfinissez certaines valeurs. Utilisez ensuite INSERT pour ajouter tout ensemble de valeurs prédéfinies à cette colonne. STRING
GEOMETRY GEOGRAPHY PAS ENCORE COMPATIBLE
BIT INT64 PAS ENCORE COMPATIBLE

Mappage des types PostgreSQL vers les types BigQuery

Nom Description Type BigQuery Différence entre les types
Entier
smallint 2 octets, de -32 768 à +32 767. INT64
smallserial Voir smallint. INT64
Entier 4 octets, de -2 147 483 648 à +2 147 483 647. INT64
serial Voir integer. INT64
bigint 8 octets, de -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807. INT64
bigserial Voir bigint. INT64
Valeurs numériques exactes
numeric [ (p, s) ] Précision jusqu'à 1 000 NUMERIC, BIGNUMERIC, FLOAT64 ou STRING numeric [ (p, s) ] est mappé par défaut sur NUMERIC, ou peut être mappé sur BIGNUMERIC, FLOAT64 ou STRING avec l'option default_type_for_decimal_columns.
decimal [ (p, s) ] Voir numeric. NUMERIC Voir numeric.
argent 8 octets, 2 chiffres décimaux d'échelle, de -92 233 720 368 547 758.08 à +92 233 720 368 547 758.07. NON COMPATIBLE.
Valeurs numériques approchées.
real 4 octets, nombre à virgule flottante à simple précision. FLOAT64
double precision 8 octets, nombre à virgule flottante à double précision. FLOAT64
Date et heure
date Date du calendrier (année, mois, jour). DATE
time [ (p) ] [ sans fuseau horaire ] Heure de la journée (sans fuseau horaire). TIME
time [ (p) ] avec fuseau horaire Heure de la journée, fuseau horaire compris. NON COMPATIBLE
timestamp [ (p) ] [ sans fuseau horaire ] Date et heure (sans fuseau horaire). DATETIME
timestamp [ (p) ] avec fuseau horaire Date et heure, fuseau horaire compris. TIMESTAMP Une valeur TIMESTAMP de PostGreSQL est récupérée au fuseau horaire UTC, quelle que soit l'origine de l'appel BigQuery.
interval Durée. NON COMPATIBLE
Caractères et chaînes de caractères
character [ (n) ] Chaîne de caractères de longueur fixe. STRING
character varying [ (n) ] Chaîne de caractères de longueur variable. STRING
text Chaîne de caractères de longueur variable. STRING
Binary
bytea Données binaires ("tableau d'octets"). BYTES
bit [ (n) ] Chaîne de bits de longueur fixe. BYTES
bit varying [ (n) ] Chaîne de bits de longueur variable. BYTES
Autre
boolean Valeur logique booléenne (true/false). BOOL
inet Adresse d'hôte, au format IPv4 ou IPv6. NON COMPATIBLE
chemin d'accès Chemin géométrique dans un plan. NON COMPATIBLE
pg_lsn Numéro de séquence de journal PostgreSQL. NON COMPATIBLE
point Point géométrique dans un plan. NON COMPATIBLE
polygon Chemin géométrique fermé dans un plan. NON COMPATIBLE
tsquery Requête de recherche de texte. NON COMPATIBLE
tsvector Document de recherche de texte. NON COMPATIBLE
txid_snapshot Instantané d'ID de transaction au niveau utilisateur. NON COMPATIBLE
uuid identifiant universel unique. NON COMPATIBLE
xml Données XML. STRING
box Cadre rectangulaire dans un plan. NON COMPATIBLE
cidr Adresse réseau, au format IPv4 ou IPv6. NON COMPATIBLE
cercle Cercle dans un plan. NON COMPATIBLE
interval [ fields ] [ (p) ] Période. NON COMPATIBLE
json Données JSON textuelles. STRING
jsonb Données JSON binaires, décomposées. NON COMPATIBLE
line Ligne infinie dans un plan. NON COMPATIBLE
lseg Segment dans un plan. NON COMPATIBLE
macaddr Adresse MAC (Media Access Control). NON COMPATIBLE
macaddr8 Adresse MAC (Media Access Control) (format EUI-64). NON COMPATIBLE