Fonctionnalités non prises en charge et limitations concernant les tables hybrides¶
Le conseil suivant sur les fonctionnalités non prises en charge et les limitations s’applique aux tables hybrides et est susceptible d’être modifié.
Fonctionnalités non prises en charge¶
Les tables hybrides ne prennent pas en charge les opérations et éléments suivants :
Limitations¶
- Clonage
Bien que le clonage ne soit pas pris en charge pour les tables hybrides, vous pouvez cloner des bases de données et des schémas contenant des tables hybrides à l’aide du paramètre IGNORE HYBRID TABLES dans l’instruction CREATE <objet> … CLONE.
- 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
Canada (Centre)
ca-central-1
Amérique du Sud (Sao Paulo)
sa-east-1
Europe (Londres)
eu-west-2
EU (Irlande)
eu-west-1
EU (Paris)
eu-west-3
EU (Stockholm)
eu-north-1
EU (Francfort)
eu-central-1
Asie-Pacifique (Tokyo)
ap-northeast-1
Asie-Pacifique (Seoul)
ap-northeast-2
Asie-Pacifique (Osaka)
ap-northeast-3
Asie Pacifique (Mumbai)
ap-south-1
Asie-Pacifique (Singapour)
ap-southeast-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.
- COPY
Lorsque vous chargez une table hybride à l’aide de la commande COPY INTO,
ABORT_STATEMENT
est la seule option prise en charge parON_ERROR
. La définition deON_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é à 1 TB dans les tables hybrides par base de données Snowflake. Voir Quotas et limitations pour plus d’informations.
- Types de données non pris en charge dans les index
Les colonnes avec des types de données géospatiales (GEOGRAPHY et GEOMETRY), des types de données semi-structurées (ARRAY, OBJECT, VARIANT) et des types de données vectorielles (VECTOR) ne sont pas prises en charge en tant que colonnes PRIMARY KEY (qui sont automatiquement indexées) ou en tant que colonnes explicitement indexées. (Les colonnes de tables hybrides prennent en charge ces types de données tant que les colonnes ne sont pas indexées.)
Le TIMESTAMP_TZ type de données (ou un TIMESTAMP type de données qui correspond à TIMESTAMP_TZ) n’est pas pris en charge pour les colonnes indexées à l’aide des contraintes UNIQUE, PRIMARY KEY, et FOREIGN KEY. Cependant, TIMESTAMP_TZ est pris en charge pour les index secondaires.
Voir aussi Index secondaires.
- 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.
- Chargement des données
La commande CREATE TABLE … AS SELECT est recommandée pour le chargement de données dans une table hybride. Cette commande est optimisée en termes de performances et est environ 10 fois plus rapide que les autres commandes telles que COPY ou INSERT INTO … SELECT lors du chargement de millions d’enregistrements.
Voir Chargement des données pour plus d’informations.
- 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
.- Résultats de requête persistants
Les requêtes portant sur des tables hybrides n’utilisent pas le cache de résultats, tel que défini par le paramètre USE_CACHED_RESULT. Voir Utilisation de résultats de requête persistants.
- 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.
Quota
Par défaut
Remarques
Stockage hybride
1 TB par base de données Snowflake
Le quota contrôle la quantité de données que vous pouvez stocker dans des tables hybrides. Cette limite s’applique uniquement aux données de tables hybrides actives dans le magasin de lignes ; elle ne s’applique pas au stockage d’objets. Si vous dépassez le quota de stockage, les opérations d’écriture 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 2 000 opérations par seconde et par base de données Snowflake
Ce quota contrôle le débit de lecture depuis des tables hybrides et d’écriture dans des tables hybrides. Vous devriez pouvoir réaliser jusqu’à 2 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. Pour surveiller l’étranglement, consultez l’exemple dans Vue AGGREGATE_QUERY_HISTORY.
Bases de données contenant des tables hybrides
100 au total par compte Snowflake et pas plus de 10 bases de données ajoutées dans une fenêtre d’une heure
Ce quota contrôle le nombre de bases de données de votre compte Snowflake pouvant contenir des tables hybrides. Si vous dépassez ce quota, vous ne pourrez pas créer de table hybride dans une nouvelle base de données sans supprimer toutes les tables hybrides d’une base de données existante ou augmenter votre quota.
La limitation peut être causée par une combinaison de facteurs qui entraînent l’envoi d’un trop grand nombre de demandes de lecture et d’écriture au fournisseur de stockage de tables hybrides :
Un nombre trop élevé de demandes de lecture peut se produire en raison de requêtes mal optimisées ou d’une charge de travail importante et agressive avec une simultanéité des requêtes très élevée.
Un trop grand nombre de demandes d’écriture peut se produire si le chemin de chargement en masse n’a pas été choisi lors du chargement d’une table ou si la charge de travail comprend trop d’opérations d’écriture simultanées.
Si vous recevez une erreur ou si une limitation se produit en raison d’une limite de quota, contactez votre administrateur système ou DBA pour examiner la charge de travail globale d’Unistore ; elle peut éventuellement être modifiée pour éviter de dépasser le quota. DBAs peut contacter l”assistance de Snowflake pour évaluer les performances des requêtes et l’utilisation des quotas. Pour certaines charges de travail, vous devrez peut-être augmenter le quota.
- Réplication
La réplication de tables hybrides n’est actuellement pas prise en charge.
- Index secondaires
Les fonctionnalités d’index secondaires suivantes ne sont pas prises en charge :
Ajout d’une colonne à un index.
Modification d’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.
Pour plus d’informations sur les index secondaires, voir Ajout d’index à une table hybride.
- Débit
Vous pouvez exécuter jusqu’à environ 2 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.
- Time Travel
Les requêtes Time Travel sont prises en charge sur les tables hybrides avec les limitations suivantes :
Seul le paramètre TIMESTAMP est pris en charge dans la clause AT. Les paramètres OFFSET, STATEMENT et STREAM ne sont pas pris en charge.
La valeur du paramètre TIMESTAMP doit être la même pour toutes les tables appartenant à la même base de données. Si les tables appartiennent à des bases de données différentes, différentes valeurs TIMESTAMP peuvent être utilisées.
Le clonage n’est généralement pas pris en charge pour les tables hybrides, vous ne pouvez donc pas spécifier la clause AT dans CREATE TABLE … CLONE.
La clause BEFORE n’est pas prise en charge.
La commande UNDROP TABLE, qui dépend de Time Travel, n’est pas prise en charge.
- 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 auxquelles il est fait référence dans une transaction doivent résider dans la même base de données ; les tables Snowflake standards de la même transaction peuvent résider dans des bases de données différentes.
- Schémas et bases de données transitoires
Vous ne pouvez pas créer de tables hybrides qui sont temporaires ou transitoires. À l’inverse, vous ne pouvez pas créer de tables hybrides dans des schémas ou des bases de données transitoires.
- 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 le support Snowflake.
- UNDROP
UNDROP n’est pas pris en charge pour les tables hybrides. En outre :
Les commandes UNDROP SCHEMA et UNDROP DATABASE réussissent pour les entités que 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é parent, mais aucune entrée pour les tables hybrides.