Tous les produits
Search
Centre de documentation

ApsaraDB for ClickHouse:INSERT INTO

Dernière mise à jour :Aug 11, 2026

Insère des lignes dans une table ApsaraDB for ClickHouse.

Syntaxe

INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), ...

Pour les colonnes définies dans le schéma de la table mais absentes de l'instruction, ApsaraDB for ClickHouse applique les règles suivantes pour déterminer les valeurs à insérer :

Condition Comportement
Une expression par défaut est définie pour la colonne Évalue l'expression et insère le résultat
Aucune expression par défaut n'est définie Insère 0 ou une chaîne vide

Utilisation de SELECT avec INSERT INTO

INSERT INTO [db.]table [(c1, c2, c3)] SELECT ...

Les colonnes du résultat SELECT correspondent aux colonnes de l'instruction INSERT INTO selon un ordre positionnel strict ; les noms de colonnes n'ont pas besoin de coïncider. ApsaraDB for ClickHouse convertit automatiquement les types de données si nécessaire.

Prise en charge des expressions

Seule la forme VALUES accepte les expressions intégrées telles que now() et 1 + 2. Même avec VALUES, évitez les expressions intégrées, car leur évaluation ligne par ligne s'avère inefficace. Calculez plutôt les valeurs avant l'insertion.

Considérations relatives aux performances

Lorsque ApsaraDB for ClickHouse exécute une instruction INSERT INTO, il traite immédiatement les données : tri selon la clé primaire et partitionnement. Si les données à insérer s'étendent sur plusieurs mois, les performances d'insertion se dégradent considérablement.

Pour maintenir un débit d'insertion élevé :

  • Écrivez un volume important de données en une seule fois. Par exemple, écrivez 100 000 lignes de données à chaque opération.

  • Regroupez les données avant de les écrire dans un cluster ApsaraDB for ClickHouse.

Dans les scénarios suivants, les performances d'insertion ne sont pas affectées :

  • Les données sont écrites en temps réel.

  • Les données à écrire sont déjà triées par date.