Fonctionnalités non prises en charge et limitations concernant les tables hybrides

Les conseils suivants sur les fonctionnalités non prises en charge et les limitations s’appliquent aux tables hybrides et sont susceptibles d’être modifiés.

Fonctionnalités non prises en charge

Les tables hybrides ne prennent pas en charge les opérations et éléments suivants :

Limitations

Clouds et régions

Les tables hybrides sont disponibles uniquement dans la version en avant-première publique dans certaines régions Amazon Web Services (AWS) publiques :

Région Cloud

ID de région Cloud

US Ouest (Oregon)

us-west-2

US East (Ohio)

us-east-2

US Est (Virginie du Nord)

us-east-1

EU (Irlande)

eu-west-1

EU (Francfort)

eu-central-1

Asie-Pacifique (Tokyo)

ap-northeast-1

Asie-Pacifique (Sydney)

ap-southeast-2

  • Les tables hybrides ne sont pas disponibles dans Azure ou Google Cloud Platform (GCP).

  • Les tables hybrides ne sont pas disponibles dans les régions SnowGov.

  • Les tables hybrides ne sont pas disponibles pour les comptes d’essai.

  • Si vous êtes un client Virtual Private Snowflake (VPS), contactez l”Assistance Snowflake pour vous renseigner sur l’activation des tables hybrides pour votre compte.

Clés de clustering

Les clés de clustering ne sont pas prises en charge dans les tables hybrides. Pour plus d’informations, voir Clés de clustering et tables en cluster. Les données des tables hybrides sont triées par clé primaire.

Cohérence

Par défaut, les tables hybrides utilisent un modèle de cohérence basé sur la session, dans lequel les opérations de lecture de la session renvoient les dernières données des opérations d’écriture de la même session. Il peut exister une certaine obsolescence (moins de 100 ms) en ce qui concerne les modifications apportées en dehors de la session. Pour éviter toute obsolescence, définissez READ_LATEST_WRITES = true au niveau de l’instruction ou de la session. Notez que cela peut entraîner un temps de latence supplémentaire de quelques millisecondes.

Contraintes

Bien que des contraintes de clés primaire, unique et étrangère soient appliquées dans les tables hybrides, les limitations suivantes s’appliquent :

  • Les contraintes ne peuvent être définies qu’au moment de la création de la table.

  • Les contraintes sont appliquées au niveau de la ligne.

  • Les contraintes ne sont pas appliquées au niveau de l’instruction ou de la transaction (c’est-à-dire, contraintes différées).

  • Vous ne pouvez pas modifier une colonne pour qu’elle soit unique.

Les limitations supplémentaires suivantes s’appliquent aux clés étrangères :

  • Les contraintes de clé étrangère ne sont prises en charge que pour les tables hybrides appartenant à la même base de données.

  • La table référencée d’une contrainte de clé étrangère ne peut pas être tronquée tant qu’existe la relation de clé étrangère.

  • Les contraintes de clé étrangère ne permettent pas d’effectuer des mises en correspondance partielles.

  • Les contraintes de clé étrangère ne prennent pas en charge le comportement reportable.

  • Les contraintes de clé étrangère ne prennent en charge que les comportements RESTRICT et NO ACTION pour les opérations DELETE et UPDATE.

  • Les contraintes de clé étrangère sont appliquées au niveau de l’instruction.

COPY

Lors de l’utilisation de COPY INTO sur une table hybride, ABORT_STATEMENT est la seule option prise en charge pour ON_ERROR. La définition de ON_ERROR=SKIP_FILE renvoie une erreur. Pour plus d’informations, voir Chargement des données.

Taille des données

Le stockage de données est limité à 100GB dans les tables hybrides de votre compte. Voir Quotas et limitations pour plus d’informations.

commandes DML

Lorsque vous utilisez des commandes DML pour modifier un petit nombre de lignes, optimisez les performances en utilisant les instructions INSERT, UPDATE ou DELETE au lieu de MERGE.

Index

Bien que les index secondaires soient pris en charge, les fonctions d’index suivantes ne sont actuellement pas prises en charge :

  • Ajout d’une colonne à un index.

  • Création d’un index sur une ou plusieurs colonnes de données semi-structurées (ARRAY, OBJECT, VARIANT).

Vous ne pouvez pas modifier un index sur une table hybride existante.

Pour utiliser un index secondaire sur une table hybride, vous devez utiliser un rôle bénéficiant du privilège SELECT sur la table. Si vous n’avez accès qu’à des objets autres que la table hybride elle-même, vous ne pourrez pas utiliser d’index secondaires.

Les colonnes TIMESTAMP sont prises en charge. Toutefois, les comparaisons (par exemple, les prédicats WHERE) à des colonnes TIMESTAMP qui font partie d’une clé composite dans une table de base ou un index ne sont actuellement pas prises en charge et entraînent une erreur.

Chargement des données

Il est recommandé d’utiliser CREATE TABLE … AS SELECT pour le chargement de données en masse dans une table hybride. Cette option est optimisée en termes de performances et est environ 10 fois plus rapide que les autres options telles que COPY ou INSERT INTO … SELECT lors du chargement de plusieurs millions d’enregistrements.

Pour plus d’informations, voir Chargement des données.

Applications natives

Vous pouvez inclure des tables hybrides dans une application native Snowflake. Toutefois, le fournisseur ne peut pas partager de tables hybrides avec le consommateur. Les Native Apps peuvent créer des tables hybrides dans le compte de consommateur, et elles peuvent lire depuis ces tables hybrides et écrire dans ces tables hybrides. Vous pouvez également exposer des tables hybrides aux rôles d’application afin qu’elles puissent être interrogées directement par les utilisateurs consommateurs.

Vous ne pouvez pas créer de table hybride dans un compte de fournisseur, ni inclure cette table hybride dans une vue partagée via l’application native.

Periodic Rekeying

Vous ne pouvez pas utiliser de tables hybrides si votre compte Snowflake est activé de sorte à utiliser la re-saisie périodique. Si la re-saisie périodique est activée dans votre compte et que vous souhaitez utiliser des tables hybrides, vous devez utiliser une commande ALTER ACCOUNT pour définir le paramètre PERIODIC_DATA_REKEYING sur FALSE.

Quotas et limitations

Votre utilisation des tables hybrides est limitée par des quotas afin de garantir une disponibilité équitable des ressources partagées, d’assurer une qualité de service constante et de réduire les pics d’utilisation. Par défaut, ces quotas sont appliqués à votre compte Snowflake au niveau du compte, et ils sont partagés par toutes les bases de données de votre compte.

Quota

Par défaut

Remarques

Stockage hybride

100GB

Le quota de stockage hybride contrôle la quantité de données que vous pouvez stocker dans des tables hybrides. Si vous dépassez le quota de stockage, les opérations WRITE qui ajoutent des données à des tables hybrides sont temporairement bloquées jusqu’à ce que vous rameniez votre consommation de stockage hybride sous le quota en supprimant des données.

Requêtes de tables hybrides

Environ 1 000 opérations par seconde

Le quota de requêtes de tables hybrides contrôle le débit de lecture depuis des tables hybrides et d’écriture dans des tables hybrides. Vous devriez pouvoir réaliser jusqu’à 1 000 opérations par seconde sur des tables hybrides pour une charge de travail équilibrée composée de 80 % de lecture et de 20 % d’écriture. Vous pouvez identifier les limitations à l’aide de l’exemple figurant à la section Vue AGGREGATE_QUERY_HISTORY.

Si vous recevez une erreur ou si vous êtes limité(e) par un quota atteint, modifiez votre charge de travail pour rester en dessous de la limite de quota. Si vous avez une charge de travail qui nécessite un quota de stockage ou de débit supérieur, contactez l”Assistance Snowflake pour discuter d’une éventuelle augmentation de la limite de quota. Pour les charges de travail dont les besoins en capacité sont connus et constants, il est possible d’isoler vos bases de données individuelles afin de pouvoir disposer d’allocations de quotas distinctes du reste de votre compte Snowflake.

Réplication

La réplication de tables hybrides n’est actuellement pas prise en charge. Si une base de données principale contient une table hybride, l’opération d’actualisation échoue.

SQL API

L’API SQL n’est pas prise en charge pour les tables hybrides. L’utilisation de l’API SQL peut produire des erreurs ou des résultats inattendus dans les requêtes portant sur des données stockées dans des tables hybrides.

Débit

Vous pouvez exécuter jusqu’à environ 1 000 opérations par seconde sur les tables hybrides de votre compte pour une charge de travail équilibrée 80 %/20 % de lecture/écriture. Si vous dépassez cette limite, Snowflake peut réduire votre débit. Voir Quotas et limitations pour plus d’informations.

Transactions

Pour les tables hybrides, le champ d’application des transactions est la base de données dans laquelle réside la table hybride. Toutes les tables hybrides d’une transaction doivent résider dans la même base de données ; les tables Snowflake standards de la même transaction ne sont pas concernées par cette restriction et peuvent résider dans des bases de données différentes.

Tri-Secret Secure

Vous ne pouvez pas utiliser de tables hybrides si votre compte Snowflake est activé de sorte à utiliser Tri-Secret Secure . Avant d’utiliser des tables hybrides, vérifiez si votre compte Snowflake est activé pour Tri-Secret Secure en contactant l”Assistance Snowflake.

UNDROP

UNDROP n’est pas pris en charge pour les tables hybrides. En outre :

  • UNDROP SCHEMA et UNDROP DATABASE réussissent pour les entités qui contiennent des tables hybrides, mais ces tables hybrides et leurs contraintes et index associés ne peuvent pas être restaurés.

  • La colonne DELETED dans Vue TABLES affiche l’heure de la suppression sous forme d’heure UNDROP de l’entité parente.

  • Vue ACCESS_HISTORY contient une entrée pour DROP/UNDROP de l’entité parente et non des tables hybrides.