{"allowedRenditionsWidth":["320","480","640","768","960","1200","1440","1920"],"templateName":"blog-page","cssClassNames":"blog-page page basicpage summit-page","canonicalLink":"https://www.snowflake.com/fr/blog/snowpipe-streaming-iceberg-tables/","robotsTags":["index","follow"],"language":"fr","description":"Découvrez comment diffuser des données simplement vers des tables Apache Iceberg gérées par Snowflake avec Snowpipe Streaming.","title":"Diffuser des données vers Apache Iceberg avec Snowflake","analyticsPageType":"homepage","analyticsCategory":"general","analyticsSubCategory":"","excludeFromAnalytics":false,"analyticsContentTags":["snowflake-site:taxonomy/blog/product-and-technology/data-engineering","snowflake-site:taxonomy/product/data-engineering","snowflake-site:taxonomy/snowflake-feature/apache-iceberg","snowflake-site:taxonomy/snowflake-feature/ingestion"],"analyticsEnabled":true,"coveoConfig":{"searchHub":"snowflake.com","organizationId":"snowflakecomputingproduction8neljofn","apiKey":"xx335921a6-2a0a-40f2-a167-e390b4766c3d","pipeline":"snowflake.com"},"isPasswordProtected":false,":path":"/content/snowflake-site/global/fr/blog/snowpipe-streaming-iceberg-tables",":hierarchyType":"page","analyticsDebugMode":false,"analyticsData":{"excludeFromAnalytics":false,"subCategory":"","pageType":"homepage","templateName":"blog-page","siteName":"snowflake","pageUrl":"/content/snowflake-site/global/fr/blog/snowpipe-streaming-iceberg-tables","language":"fr","category":"general","pageName":"Snowpipe Streaming : la solution pour diffuser vos données facilement vers Apache Iceberg","contentTags":["snowflake-site:taxonomy/blog/product-and-technology/data-engineering","snowflake-site:taxonomy/product/data-engineering","snowflake-site:taxonomy/snowflake-feature/apache-iceberg","snowflake-site:taxonomy/snowflake-feature/ingestion"]},":type":"snowflake-site/components/structure/page",":mappedPath":"/fr/blog/snowpipe-streaming-iceberg-tables/",":items":{"root":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"experiencefragment-banner":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-sub-header":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-pre-footer":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-header":"aem-GridColumn aem-GridColumn--default--12","markup_editor-table":"aem-GridColumn aem-GridColumn--default--12","responsivegrid":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-footer":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12","container_47873732":"aem-GridColumn aem-GridColumn--default--12"},"columnCount":12,":items":{"experiencefragment-banner":{"id":"experiencefragment-7e34d6cf1d","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/pushdown-banner-blank/jcr:content","configured":true,"xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/pushdown-banner-blank.xfmodel.json",":type":"snowflake-site/components/experiencefragment"},"experiencefragment-header":{"id":"experiencefragment-8a11fef7b2","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/fr/site/mega-nav-header/master/jcr:content","configured":true,"xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/fr/site/mega-nav-header/master.xfmodel.json","languageNavPath":"/content/snowflake-site/global/fr/blog/snowpipe-streaming-iceberg-tables.languagenav.json",":type":"snowflake-site/components/experiencefragment","appliedCssClassNames":"snowflake-sticky-nav-host"},"experiencefragment-sub-header":{"id":"experiencefragment-83dc509bfa","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/fr/site/sub-navigation/master/jcr:content","configured":true,"xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/fr/site/sub-navigation/master.xfmodel.json",":type":"snowflake-site/components/experiencefragment"},"responsivegrid":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"container_breadcrumb":"aem-GridColumn aem-GridColumn--default--12","container_main_content":"aem-GridColumn aem-GridColumn--default--12"},"columnCount":12,":items":{"container_breadcrumb":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"breadcrumb":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"blog-page-breadcrumb-indentation",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-container",":items":{"breadcrumb":{"id":"breadcrumb-b7edcc5ca7","breadcrumbItems":[{"title":"Blog","path":"/fr/blog/","active":false},{"title":"Data engineering","active":false},{"title":"Snowpipe Streaming : la solution pour diffuser vos données facilement vers Apache Iceberg","path":"/fr/blog/snowpipe-streaming-iceberg-tables/","active":false}],":type":"snowflake-site/components/blog/breadcrumb"}},":itemsOrder":["breadcrumb"]},"container_main_content":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"flexible_column_container":"aem-GridColumn aem-GridColumn--default--12","related_content":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"main-content",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-container",":items":{"flexible_column_container":{"id":"flexible-column-container-4718d5b514","propertiesId":"snowflake-blog-template-main-container","type":"2-column-60-40","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"none","bottomPadding":"none","spaceBetween":"none","reverseOnMobile":true,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-85d4e10265",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"container_hero":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"blog_hero":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-72b8443f7d",":type":"snowflake-site/components/container",":items":{"blog_hero":{"id":"blog-hero-aa48e1b12a","showClaude":true,"showChatGpt":true,"timeToRead":"9","publicationDate":"AUG 24, 2026","image":{"id":"image-30e9d8daba","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--7389b532-c137-4ed4-9e5f-99a30a74e98c/sf-eng-blog-ml-2.png?quality=85&preferwebp=true","lazyEnabled":true,"height":"720","width":"1680",":type":"snowflake-site/components/image"},"authors":[],"tag":{"tagText":"Data engineering","tagColor":"#29B5E8"},"title":{"lines":["Snowpipe Streaming : la solution pour diffuser vos données facilement vers Apache Iceberg"],"type":"heading2",":type":"snowflake-site/components/title-v2"},":type":"snowflake-site/components/blog/blog-hero"}},":itemsOrder":["blog_hero"]},"responsivegrid_content":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"blog_component_29":"aem-GridColumn aem-GridColumn--default--12","blog_component_26":"aem-GridColumn aem-GridColumn--default--12","blog_component_25":"aem-GridColumn aem-GridColumn--default--12","blog_component_24":"aem-GridColumn aem-GridColumn--default--12","blog_component_23":"aem-GridColumn aem-GridColumn--default--12","blog_component_11":"aem-GridColumn aem-GridColumn--default--12","blog_component_10":"aem-GridColumn aem-GridColumn--default--12","blog_component_32":"aem-GridColumn aem-GridColumn--default--12","blog_component_31":"aem-GridColumn aem-GridColumn--default--12","blog_component_30":"aem-GridColumn aem-GridColumn--default--12","blog_text":"aem-GridColumn aem-GridColumn--default--12","blog_component_1":"aem-GridColumn aem-GridColumn--default--12","blog_component_2":"aem-GridColumn aem-GridColumn--default--12","blog_component_0":"aem-GridColumn aem-GridColumn--default--12","blog_component_5":"aem-GridColumn aem-GridColumn--default--12","blog_component_6":"aem-GridColumn aem-GridColumn--default--12","blog_component_3":"aem-GridColumn aem-GridColumn--default--12","blog_component_4":"aem-GridColumn aem-GridColumn--default--12","blog_component_9":"aem-GridColumn aem-GridColumn--default--12","blog_component_7":"aem-GridColumn aem-GridColumn--default--12","blog_component_17":"aem-GridColumn aem-GridColumn--default--12","blog_component_8":"aem-GridColumn aem-GridColumn--default--12","blog_component_16":"aem-GridColumn aem-GridColumn--default--12","blog_component_14":"aem-GridColumn aem-GridColumn--default--12","blog_component_13":"aem-GridColumn aem-GridColumn--default--12","blog_component_12":"aem-GridColumn aem-GridColumn--default--12"},"columnCount":12,"appliedCssClassNames":"snowflake-layout-container-inner-padding-small",":items":{"blog_component_0":{"id":"blog-title-7c0b1cfb7d","propertiesId":"testez-le-streaming-a-grande-echelle-sans-infrastructure-supplementaire","type":"heading2","lines":["Testez le streaming à grande échelle sans infrastructure supplémentaire"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_1":{"id":"blog-text-8e5a7cf078","text":"\u003Cp\u003E\u003Cstrong\u003EPour savoir si Snowpipe Streaming tient la cadence à plus d’un million de TPS, votre équipe doit pouvoir obtenir rapidement une réponse concrète.\u003C/strong\u003E Le streaming à grande échelle a la réputation d’être complexe. C’est le workload que les équipes repoussent, car sa mise en place exige des buckets S3, un cluster EKS, des topics Kafka, des politiques IAM, un examen de sécurité et la validation de trois équipes plateforme, chacune ayant déjà son propre backlog. Cette configuration peut nécessiter le provisionnement d’infrastructures supplémentaires et une coordination étroite avant même le début des tests. Démontrer que ces pipelines fonctionnent à grande échelle et absorbent les volumes de production devient généralement un projet à part entière.\u003C/p\u003E\u003Cp\u003EDans notre environnement de démo, un après-midi nous a suffi pour configurer et réaliser cette évaluation. Notre \u003Ca href=\"https://www.snowflake.com/fr/product/features/snowpipe-streaming/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003Earchitecture haute performance Snowpipe Streaming\u003C/a\u003E vous permet de diffuser des données au \u003Ca href=\"https://www.snowflake.com/en/developers/guides/apache-iceberg-snowflake-open-catalog-snowpipe-streaming/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003Eformat Apache Iceberg™\u003C/a\u003E à plus d’un million de TPS, entièrement au sein de l’infrastructure Snowflake. Un conteneur exécuté dans Snowpark Container Services (SPCS) génère la charge, diffuse les données via le SDK et les écrit dans une table Iceberg gérée par Snowflake. Les données peuvent ainsi être interrogées immédiatement dans Snowflake, avec le contrôle d’accès basé sur les rôles (RBAC), la traçabilité et le masquage appliqués dès leur arrivée. Dans notre environnement de test, un après-midi nous a suffi pour déployer la démo, la tester de bout en bout, mesurer le débit, puis supprimer l’ensemble.\u003C/p\u003E\u003Cp\u003ECet article vous explique concrètement comment créer une démo de streaming de bout en bout vers Iceberg à l’aide de ce \u003Ca href=\"https://github.com/sfc-gh-damatthews/streaming-snowpipe-to-iceberg\" target=\"_blank\" rel=\"noopener noreferrer\"\u003Edépôt GitHub\u003C/a\u003E. Cet exemple utilise Python, mais vous pouvez tester les différentes options du SDK (Java, Python, Node et REST). Vous disposerez ainsi de résultats concrets pour recommander cette solution à votre organisation en toute confiance.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_2":{"id":"blog-title-f3dc168d6f","propertiesId":"schema-darchitecture-le-modele","type":"heading2","lines":["Schéma d’architecture : Le modèle"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_3":{"id":"blog-text-51c9030136","text":"\u003Cp\u003ENotre objectif était de créer une démo entièrement exécutée au sein de l’infrastructure Snowflake. Plusieurs conteneurs Docker exécutés dans Snowpark Container Services (\u003Ca href=\"https://docs.snowflake.com/fr/developer-guide/snowpark-container-services/overview\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ESPCS\u003C/a\u003E) génèrent des données de test synthétiques au nombre de transactions par seconde que vous ciblez, puis les diffusent à l’aide du \u003Ca href=\"https://docs.snowflake.com/fr/user-guide/snowpipe-streaming/data-load-snowpipe-streaming-overview\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ESDK Snowpipe Streaming\u003C/a\u003E. Elles sont écrites dans une \u003Ca href=\"https://docs.snowflake.com/fr/user-guide/tables-iceberg-internal-storage\" target=\"_blank\" rel=\"noopener noreferrer\"\u003Etable Iceberg gérée par Snowflake\u003C/a\u003E : un format ouvert, interrogeable quelques secondes après leur arrivée et gouverné dans Snowflake. L’authentification est simple : SPCS injecte dans le conteneur un token OAuth à courte durée de vie que le Streaming SDK utilise automatiquement. Vous n’avez aucun secret à gérer.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_4":{"id":"image-3dbdb4a552","isLcpImage":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--98a617c0-c986-4746-a881-8b633a440c42/snowflake-architecture-diagram-showing-spcs-service-load.png?quality=85&preferwebp=true","alt":"Schéma d'architecture Snowflake montrant un générateur de charge exécuté comme service SPCS (Snowpark Container Services) qui diffuse des données en continu vers une table Iceberg via Snowpipe.","lazyEnabled":true,"height":"676","width":"1508","title":"Figure 1 : Snowpark Container Service vers Iceberg",":type":"snowflake-site/components/image"},"blog_component_5":{"id":"blog-title-8e3f3443b3","propertiesId":"pourquoi-utiliser-spcs-pour-generer-la-charge","type":"heading2","lines":["Pourquoi utiliser SPCS pour générer la charge ?"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_6":{"id":"blog-text-eee3a256b1","text":"\u003Cp\u003ESoyons clairs : Snowpipe Streaming n’a pas besoin de SPCS. Le SDK s’exécute partout : sur votre ordinateur portable, une instance EC2 ou un pod Kubernetes.\u003C/p\u003E\u003Cp\u003ESon déploiement dans SPCS accélère simplement les tests : le service s’exécute entièrement sur une infrastructure déjà gérée par Snowflake, sans nouveau provisionnement ni validation supplémentaire pour le test.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_7":{"id":"blog-title-4fe8fffeb4","propertiesId":"ecrire-directement-dans-iceberg","type":"heading2","lines":["Écrire directement dans Iceberg"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_8":{"id":"blog-text-74df9b07f7","text":"\u003Cp\u003ELa cible est une table Iceberg gérée par Snowflake. Les lignes sont diffusées via le SDK, puis écrites au format Parquet avec des métadonnées Iceberg gérées par Snowflake. Vous pourrez ensuite la connecter à votre propre volume externe S3 ou la laisser sous gestion Snowflake après l’évaluation. Dans les deux cas, le code reste identique.\u003C/p\u003E\u003Cp\u003EPour l’évaluation, cela réduit la configuration nécessaire. Une table utilisant le stockage géré par Snowflake vous dispense de configurer au préalable un volume externe, une intégration de stockage et les autorisations de stockage cloud.\u003C/p\u003E\u003Cp\u003ELorsque vous serez prêt à passer en production, trois options s’offriront à vous :\u003C/p\u003E\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EIceberg géré par Snowflake avec un volume externe :\u003C/strong\u003E Les fichiers Parquet sont stockés dans votre bucket S3. Un moteur externe lit directement les fichiers Parquet dans S3 et utilise Horizon REST Catalog pour les métadonnées.\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EIceberg géré par Snowflake sur le stockage Snowflake :\u003C/strong\u003E Les fichiers sont conservés dans le stockage interne de Snowflake. Cette option évite de configurer un volume externe et le stockage cloud associé. Elle exploite les fonctionnalités d’Iceberg pour assurer la compatibilité à l’avenir.\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ETable Snowflake native :\u003C/strong\u003E Cette configuration ne nécessite aucune infrastructure de stockage externe gérée séparément.\u003C/li\u003E\u003C/ul\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_9":{"id":"blog-title-079ab22a78","propertiesId":"demo-regardez-la-tourner","type":"heading2","lines":["Démo : Regardez-la tourner"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_10":{"id":"image-d80aaf43f4","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--de301f52-b79d-4f13-86b1-b83b9818512e/terminal-output-showing-snowpipe-streaming-data-ingestion.png?quality=85&preferwebp=true","alt":"Sortie de terminal illustrant la progression d'une ingestion de données via Snowpipe Streaming, depuis la phase de configuration jusqu'aux étapes de vérification.","lazyEnabled":true,"height":"1158","width":"1023","title":"Figure 2 : Démo de streaming de bout en bout",":type":"snowflake-site/components/image"},"blog_component_11":{"id":"blog-text-7a8542797a","text":"\u003Cp\u003ELorsque vous exécutez le script de démo, vous voyez le service SPCS démarrer, le producteur générer la charge et le consommateur diffuser les données vers la table Iceberg.\u003C/p\u003E\u003Cp\u003EDans Snowsight, vous pouvez également voir le nombre de lignes grimper, jusqu’à plusieurs millions, et les interroger dès leur arrivée.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_12":{"id":"blog-title-cd52043d0d","propertiesId":"le-code-a-vous-de-jouer","type":"heading2","lines":["Le code : À vous de jouer"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_13":{"id":"blog-text-a57b360158","text":"\u003Cp\u003EPour mieux comprendre le fonctionnement de l’ensemble, voici un pseudocode qui permet de visualiser les différentes étapes. Le code complet se trouve dans le dépôt, qui contient également des liens vers plusieurs autres démos.\u003C/p\u003E\u003Cp\u003ECommencez par créer une table Iceberg gérée par Snowflake et un pipe :\u003C/p\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_14":{"id":"code-snippet-37a0edaacc","language":"sql","codeSnippet":"-- 1. The target table\r\nCREATE OR REPLACE ICEBERG TABLE events (\r\n    event_id STRING,\r\n    event_ts TIMESTAMP_NTZ,\r\n    payload  VARIANT\r\n)\r\nCATALOG = 'SNOWFLAKE'\r\nBASE_LOCATION = 'events/'\r\nICEBERG_VERSION = 3;\r\n\r\n\r\n-- 2. The streaming pipe (extracts typed fields from the SDK's VARIANT payload)\r\nCREATE OR REPLACE PIPE events_pipe\r\nAS COPY INTO events (event_id, event_ts, payload)\r\nFROM (\r\n    SELECT $1:event_id::STRING,\r\n           $1:event_ts::TIMESTAMP_NTZ,\r\n           $1:payload::VARIANT\r\n    FROM TABLE(DATA_SOURCE(TYPE =\u003E 'STREAMING'))\r\n);\r\n","multiLine":true,":type":"snowflake-site/components/code-snippet"},"blog_component_16":{"id":"blog-text-80e8ae59ae","text":"\u003Cp\u003EL’architecture haute performance de Snowpipe Streaming prend en charge les versions v2 et v3. Si vous omettez le paramètre, la table utilise la version v2 par défaut.\u003C/p\u003E\n\u003Cp\u003EPassez ensuite au consommateur :\u003C/p\u003E\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_17":{"id":"code-snippet-9f26bae809","language":"python","codeSnippet":"from snowflake.ingest.streaming import StreamingIngestClient\r\n\r\n\r\n# SPCS injects credentials automatically - no keys, no secrets\r\nprops = {\r\n    \"account\": \"YOUR_ACCOUNT\",\r\n    \"user\": \"YOUR_USER\",\r\n    \"role\": \"STREAMING_SERVICE_ROLE\",\r\n    \"url\": \"https://YOUR_ACCOUNT.snowflakecomputing.com\",\r\n    \"authorization_type\": \"SPCS\",\r\n    \"spcs_token_path\": \"/snowflake/session/token\",\r\n}\r\n\r\n\r\n# Connect to the pipe\r\nclient = StreamingIngestClient(\r\n    client_name=\"my_consumer\",\r\n    db_name=\"STREAMING_DEMO\",\r\n    schema_name=\"PUBLIC\",\r\n    pipe_name=\"events_pipe\",\r\n    properties=props,\r\n)\r\n\r\n\r\n# Open a channel and stream rows\r\nchannel, status = client.open_channel(\"ch_1\")\r\n\r\n\r\nfor i, row in enumerate(generate_load()):\r\n    channel.append_row(row, offset_token=str(i))\r\n\r\n\r\n# Close cleanly\r\nchannel.close()\r\nclient.close()\r\n","multiLine":true,":type":"snowflake-site/components/code-snippet"},"blog_component_23":{"id":"blog-text-c7898a0426","text":"\u003Cp\u003EDéployez le consommateur dans SPCS à l’aide d’une courte spécification de service. Puis observez l’arrivée des données :\u003C/p\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_24":{"id":"code-snippet-fb8da2e803","language":"sql","codeSnippet":"SELECT\r\nCOUNT(*) AS rows_landed,\r\nMAX(event_ts) AS latest_event\r\nFROM\r\nstreaming_demo.public.events;","multiLine":true,":type":"snowflake-site/components/code-snippet"},"blog_component_25":{"id":"blog-text-e06864a87d","text":"\u003Cp\u003EJava, Node et l’interface REST suivent le même principe : ouvrir un canal, insérer des lignes, puis les envoyer. Le dépôt contient un exemple fonctionnel pour chaque option. Vous pouvez donc tester celle qui correspond à votre stack.\u003C/p\u003E\u003Cp\u003EPour l’essayer, consultez le dépôt.\u003C/p\u003E\u003Cp\u003EAttention toutefois : le Streaming SDK utilise un endpoint d’ingestion distinct via HTTPS. Même si vous l’exécutez dans Snowflake, vous devez donc accorder une intégration d’accès externe autorisant le trafic sortant vers \u003Ccode\u003E*.snowflakecomputing.com\u003C/code\u003E.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_26":{"id":"blog-title-00129e82c0","propertiesId":"bonnes-pratiques","type":"heading2","lines":["Bonnes pratiques"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_29":{"id":"blog-title-36974afe79","propertiesId":"snowpipe-streaming-gere-les-batchs-pour-vous","type":"heading3","lines":["Snowpipe Streaming gère les batchs pour vous"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_30":{"id":"blog-text-17db874144","text":"\u003Cp\u003ESnowpipe Streaming ne crée pas un fichier par ligne. Le SDK envoie les lignes dès que vous appelez \u003Ccode\u003EappendRows\u003C/code\u003E, mais une couche de mise en mémoire tampon côté serveur les absorbe et détermine elle-même le moment du commit. Elle les regroupe automatiquement afin d’éviter l’envoi d’un fichier par ligne.\u003C/p\u003E\r\n\u003Cp\u003EEn complément, Snowflake exécute automatiquement une compaction en arrière-plan pour les \u003Ca href=\"https://docs.snowflake.com/fr/user-guide/tables-iceberg-internal-storage\" target=\"_blank\" rel=\"noopener noreferrer\"\u003EIceberg Tables gérées par Snowflake\u003C/a\u003E dont Snowflake est l’unique moteur d’écriture&nbsp;: Les petits fichiers Parquet sont fusionnés en fichiers plus volumineux, tandis que les petits manifests sont également compactés. Vous n’avez rien à planifier ni à exécuter&nbsp;: cette opération fait partie du fonctionnement normal.\u003C/p\u003E\r\n\u003Cp\u003ECe que vous pouvez faire&nbsp;:\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Cb\u003ERegrouper les lignes en batch côté client avant d’appeler\u003C/b\u003E \u003Ccode\u003EappendRows\u003C/code\u003E&nbsp;: envoyer les lignes une par une implique toujours un aller-retour par ligne. Les regrouper dans un même appel répartit ces frais opérationnels, selon le même principe que la recommandation de Snowflake consistant à compresser et à envoyer davantage de données par requête.\u003C/li\u003E\r\n\u003Cli\u003E\u003Cb\u003EConserver les canaux ouverts&nbsp;:\u003C/b\u003E ouvrez un canal une seule fois par partition source et laissez-le ouvert pendant toute la durée de la tâche, au lieu de l’ouvrir et de le fermer à chaque micro-batch. Il s’agit de la \u003Ca href=\"https://docs.snowflake.com/fr/user-guide/snowpipe-streaming/snowpipe-streaming-high-performance-best-practices\" target=\"_blank\" rel=\"noopener noreferrer\"\u003Ebonne pratique\u003C/a\u003E \u003Ca href=\"https://docs.snowflake.com/fr/user-guide/snowpipe-streaming/snowpipe-streaming-high-performance-best-practices\" target=\"_blank\" rel=\"noopener noreferrer\"\u003Epour Snowpipe Streaming\u003C/a\u003E recommandée dans la documentation Snowflake. Elle réduit les frais opérationnels sans perturber le regroupement déjà effectué en arrière-plan.\u003C/li\u003E\r\n\u003Cli\u003E\u003Cb\u003EDéfinir\u003C/b\u003E \u003Ccode\u003ETARGET_FILE_SIZE\u003C/code\u003E \u003Cb\u003Esur la table&nbsp;:\u003C/b\u003E Cette propriété définie au niveau de la table, indépendamment du SDK, indique à Snowflake la taille cible pour les nouvelles écritures et la compaction en arrière-plan, quelle que soit la méthode d’ingestion des données.\u003C/li\u003E\r\n\u003Cli\u003E\u003Cb\u003ELaisser le débit faire son travail&nbsp;:\u003C/b\u003E&nbsp;Plus votre nombre de TPS soutenu est élevé, plus la mémoire tampon côté serveur se remplit et se vide rapidement. Pour une taille de fichier donnée, il faut donc trouver le bon compromis entre débit et latence.&nbsp;\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_31":{"id":"blog-title-9aaa6c5117","propertiesId":"prochaine-etape-iceberg-v4","type":"heading2","lines":["Prochaine étape : Iceberg v4"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_32":{"id":"blog-text-cc1b88dd00","text":"\u003Cp\u003ESnowpipe Streaming et la compaction automatique résolvent le problème physique des petits fichiers. Toutefois, des commits fréquents peuvent encore générer des frais opérationnels dans l’arborescence des métadonnées Iceberg. Aujourd’hui, chaque commit écrit un nouveau fichier JSON de métadonnées, une nouvelle liste de manifests et un nouveau manifest, même s’il ne contient qu’un petit fichier. Pour les workloads qui effectuent un commit toutes les quelques secondes, ce traitement répété des métadonnées peut devenir un goulot d’étranglement.\u003C/p\u003E\n\u003Cp\u003E\u003Cspan style=\"font-family: adobe-clean, &quot;Source Sans Pro&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Ubuntu, &quot;Trebuchet MS&quot;, &quot;Lucida Grande&quot;, sans-serif;\"\u003ELa proposition Iceberg v4 introduit une arborescence adaptative des métadonnées (Adaptive Metadata Tree) afin de réduire cette amplification des écritures. Au lieu de créer un manifest pour chaque petit commit, le manifest racine peut intégrer directement ces commits. Une seule écriture Parquet et un remplacement atomique du pointeur remplacent la chaîne actuelle. Les E/S de métadonnées par commit restent ainsi constantes au lieu d’augmenter avec le nombre de manifests. Pour les workloads de streaming à haute fréquence, cette évolution peut considérablement réduire la latence du streaming.\u003C/span\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cspan style=\"font-family: adobe-clean, &quot;Source Sans Pro&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Ubuntu, &quot;Trebuchet MS&quot;, &quot;Lucida Grande&quot;, sans-serif;\"\u003ELe streaming est l’un des cas d’usage phares d’Iceberg v4 : Les workloads qui effectuent un commit toutes les quelques secondes mettent directement en évidence l’amplification des écritures de métadonnées. Les avantages de l’Adaptive Metadata Tree sont donc particulièrement pertinents dans ce contexte. La spécification v4 continue d’évoluer, mais mérite votre attention si le streaming Iceberg figure sur votre feuille de route. Snowflake est fier de contribuer activement à façonner l’avenir de ce format.\u003C/span\u003E\u003C/p\u003E\n\u003Ch3\u003ECe que cela change pour votre architecture\u003C/h3\u003E\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_text":{"id":"blog-text-ecbbcf2ccb","text":"\u003Cp\u003EDans cet article, nous avons démontré toute l’efficacité de Snowpipe Streaming pour diffuser des données vers Iceberg. Avec une charge comparable à celle d’une grande plateforme média ou télécom, le workload s’est exécuté dans Snowflake, sans bucket S3, cluster EKS, topic Kafka ni rôle IAM pour cet environnement de test. Nous avons ensuite pu le supprimer à la fin de l’évaluation.\u003C/p\u003E\n\u003Cp\u003EL’infrastructure qui freine habituellement le lancement d’un test de streaming, notamment les buckets, les clusters, l’authentification et les validations, n’est plus un prérequis. Vous pouvez ainsi répondre rapidement à la question : « Cette solution répond-elle à nos exigences ? »\u003C/p\u003E\n\u003Cp\u003ESi vous travaillez dans le Site Reliability Engineering (SRE) ou le data engineering pour une grande plateforme média ou télécom et que le streaming Iceberg figure sur votre feuille de route, commencez par le test, pas par le cycle d’achat. Clonez le dépôt, déployez-le dans SPCS et regardez-le tourner.\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EEssayez-le dès maintenant avec le \u003Ca href=\"https://github.com/sfc-gh-damatthews/streaming-snowpipe-to-iceberg\"\u003Edépôt GitHub\u003C/a\u003E\u003C/li\u003E\n\u003Cli\u003EPour aller plus loin, consultez la \u003Ca href=\"https://docs.snowflake.com/fr/user-guide/snowpipe-streaming/snowpipe-streaming-high-performance-iceberg\"\u003Edocumentation sur l’architecture haute performance de Snowpipe Streaming\u003C/a\u003E\u003C/li\u003E\n\u003C/ul\u003E\n","richText":true,":type":"snowflake-site/components/blog/blog-text"}},":itemsOrder":["blog_component_0","blog_component_1","blog_component_2","blog_component_3","blog_component_4","blog_component_5","blog_component_6","blog_component_7","blog_component_8","blog_component_9","blog_component_10","blog_component_11","blog_component_12","blog_component_13","blog_component_14","blog_component_16","blog_component_17","blog_component_23","blog_component_24","blog_component_25","blog_component_26","blog_component_29","blog_component_30","blog_component_31","blog_component_32","blog_text"],":type":"wcm/foundation/components/responsivegrid"},"responsivegrid_premium_content_banner":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{},"columnCount":12,"appliedCssClassNames":"snowflake-responsive-component-top-padding-medium",":items":{},":itemsOrder":[],":type":"wcm/foundation/components/responsivegrid"},"container_author_chip":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"author_chip":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-29f7a26630",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-component-top-padding-medium",":items":{"author_chip":{"id":"author-chip-bd1fb38547","title":{"id":"title","type":"heading2","lines":["Learn more about the authors"],":type":"snowflake-site/components/title-v2"},"authors":[],":type":"snowflake-site/components/blog/author-chip"}},":itemsOrder":["author_chip"]},"container_share_article":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"share_article":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-5b48c21b4f",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-component-top-padding-small",":items":{"share_article":{"id":"share-article-801469450a","linkedInShareUrl":"https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Ffr%2Fblog%2Fsnowpipe-streaming-iceberg-tables&title=Snowpipe+Streaming%C2%A0%3A+la+solution+pour+diffuser+vos+donn%C3%A9es+facilement+vers+Apache+Iceberg","twitterShareUrl":"https://x.com/intent/post?url=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Ffr%2Fblog%2Fsnowpipe-streaming-iceberg-tables&text=Snowpipe+Streaming%C2%A0%3A+la+solution+pour+diffuser+vos+donn%C3%A9es+facilement+vers+Apache+Iceberg","facebookShareUrl":"https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Ffr%2Fblog%2Fsnowpipe-streaming-iceberg-tables",":type":"snowflake-site/components/blog/share-article"}},":itemsOrder":["share_article"]}},":itemsOrder":["container_hero","responsivegrid_content","responsivegrid_premium_content_banner","container_author_chip","container_share_article"]},"flexible_column_content_container_2":{"layout":"SIMPLE","id":"container-cb73d17fd9",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"blog_table_of_content":{"id":"blog-table-of-content-15144e4bed",":type":"snowflake-site/components/blog/blog-table-of-content","tableOfContents":[]}},":itemsOrder":["blog_table_of_content"]},"isBlogPage":true,"isActiveTOC":false,":type":"snowflake-site/components/flexible-column-container"},"related_content":{"id":"related-content-f5d783d0ee","relatedContent":[{"configurationStatus":{"configured":true,"message":""},"tags":[{"tagText":"Produit et technologie","tagColor":"#3F808A"}],"authors":[{"authorImage":{"id":"image-b8664e789f","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--c83c4010-5613-4c44-a706-5628c1e8717a/hannah-miao.png?quality=85&preferwebp=true","alt":"Headshot-style photo of Hannah Miao of Snowflake","lazyEnabled":true,"height":"800","width":"800",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-9f79883feb","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/hannah-miao/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Hannah Miao"}},{"authorImage":{"id":"image-454878014c","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--93f604fa-492f-4244-b5fd-e2632ae4cf81/david-zhang.jpg?quality=85&preferwebp=true","alt":"Headshot-style photo of David Zhang of Snowflake","lazyEnabled":true,"height":"3000","width":"2998",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-57cde8281a","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/david-zhang/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"David Zhang"}}],"title":{"lines":["Libérez tout le potentiel de l’observabilité ouverte avec Observe sur Apache Iceberg"],"type":"heading4",":type":"snowflake-site/components/title-v2"},"button":{"id":"button-bb07e57884","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/fr/blog/observe-apache-iceberg-open-observability/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Libérez tout le potentiel de l’observabilité ouverte avec Observe sur Apache Iceberg"},"publicationDate":"AUG 04, 2026",":type":"snowflake-site/components/blog/card"},{"configurationStatus":{"configured":true,"message":""},"tags":[{"tagText":"Data engineering","tagColor":"#29B5E8"}],"authors":[{"authorImage":{"id":"image-4ec3afb2b7","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--bb3062e2-6de8-4d7c-9094-810ded903737/chasethomas.jpg?quality=85&preferwebp=true","lazyEnabled":true,"height":"400","width":"400",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-892109e797","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/chase-thomas/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Chase Thomas"}},{"authorImage":{"id":"image-7c318b4746","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--a8bebf48-2c53-48f8-94fd-41305c1adf18/praveen-gattu.png?quality=85&preferwebp=true","lazyEnabled":true,"height":"146","width":"142",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-3c2be34902","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/praveen-gattu/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Praveen Gattu"}}],"title":{"lines":["Migrating to Snowpipe Streaming High Performance Architecture"],"type":"heading4",":type":"snowflake-site/components/title-v2"},"button":{"id":"button-bb07e57884","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/fr/blog/migrating-snowpipe-streaming-architecture/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Migrating to Snowpipe Streaming High Performance Architecture"},"publicationDate":"JAN 30, 2026",":type":"snowflake-site/components/blog/card"}],"isBlogPage":true,":type":"snowflake-site/components/blog/related-content"}},":itemsOrder":["flexible_column_container","related_content"]}},":itemsOrder":["container_breadcrumb","container_main_content"],":type":"wcm/foundation/components/responsivegrid"},"container_47873732":{"additionalClasses":"section--blog-newsletter","gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-4b021b5e4c",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-container",":items":{"flexible_column_cont":{"id":"flexible-column-container-3f11fd55f0","type":"1-column","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"small","bottomPadding":"none","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"propertiesCSSClasses":"section--blog-newsletter","backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-1bb82d423a",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"marketo_v2":{"id":"marketo-v2-6de5142cc2","marketoForm":{"edit":false,"successUrl":null,"formId":"3320","hidden":null,"script":null,"values":null},"title":{"id":"title","type":"heading3","lines":["Subscribe to our blog newsletter","Get the best, coolest and latest delivered to your inbox each week"],":type":"snowflake-site/components/title-v2"},"munchkinId":"252-RFO-227","serverInstance":"252-RFO-227.mktoweb.com","marketoConfigured":true,"formConfigured":true,"partnerCampaignPage":false,":type":"snowflake-site/components/form/marketo-v2"},"text":{"id":"text-04e53c4233","additionalClasses":"newsletter-disclaimer","text":"\u003Cp\u003EBy submitting this form, I understand Snowflake will process my personal information in accordance with their Privacy Notice.\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/text"}},":itemsOrder":["marketo_v2","text"]},"isBlogPage":true,"isActiveTOC":false,":type":"snowflake-site/components/flexible-column-container"}},":itemsOrder":["flexible_column_cont"]},"experiencefragment-pre-footer":{"id":"experiencefragment-406cfc268f","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/fr/site/get-started-pre-footer/get-started-pre-footer/jcr:content","configured":true,"xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/fr/site/get-started-pre-footer/get-started-pre-footer.xfmodel.json",":type":"snowflake-site/components/experiencefragment"},"markup_editor":{"id":"markup-editor-2ab3622f3e","title":"Page CSS","cssContent":"@media screen and (min-width:768px){.snowflake-blog-author-chip-wrapper{justify-content:flex-start}.snowflake-blog-related-content-on-blog-page{max-width:1408px;margin-left:auto;margin-right:auto}.snowflake-text{font-family:Lato,sans-serif;font-weight:400;font-size:16px;line-height:24px}}.section--blog-newsletter{max-width:none;width:100%;padding-left:0;padding-right:0;margin-left:0;margin-right:0;margin-bottom:0}.section--blog-newsletter .mktoField{background-color:transparent !important}.section--blog-newsletter\u003E.container{padding-left:0;padding-right:0}@media screen and (min-width:768px){.section--blog-newsletter\u003E.container{padding-left:0;padding-right:0}}.newsletter-disclaimer p{font-size:14px !important}.section--blog-newsletter .snowflake-marketo-form-container{margin-bottom:24px;background-color:#f6f9fa;gap:48px;box-shadow:none}.section--blog-newsletter .snowflake-title p.snowflake-title-line:first-child{font-family:Texta;font-size:24px;line-height:26px;font-weight:700;margin-bottom:4px}.section--blog-newsletter .snowflake-title p.snowflake-title-line{text-transform:none;font-family:\"Lato\",sans-serif;font-size:16px;line-height:24px;font-weight:normal}@media screen and (min-width:1024px){.section--blog-newsletter .snowflake-marketo-form-container{display:flex;justify-content:center}.section--blog-newsletter .snowflake-title .snowflake-title-line{text-align:left}.section--blog-newsletter .snowflake-marketo-form .mktoFormRow:has(\u003E input[type=\"hidden\"]){flex-grow:0}.section--blog-newsletter .snowflake-marketo-form{display:flex;width:50% !important}.section--blog-newsletter .snowflake-marketo-form .mktoButtonRow{flex-grow:0;width:auto !important;margin-left:0;margin-right:0}.section--blog-newsletter .snowflake-marketo-form .mktoFormRow{flex-grow:1}.section--blog-newsletter\u003E.container{padding-left:0;padding-right:0}.section--blog-newsletter .snowflake-marketo-form-title{width:50%;margin-bottom:0 !important}.section--blog-newsletter .center .snowflake-title{align-items:flex-start}}.snowflake-sub-navigation a.snowflake-sub-navigation-primary-link{width:auto !important}.snowflake-blog-hero{align-items:stretch !important}","isGSAPEnabled":false,":type":"snowflake-site/components/markup-editor"},"markup_editor-table":{"id":"markup-editor-85613cdeb4","title":"Table Styling CSS","cssContent":"#snowflake-blog-template-main-container table{width:100%;background-color:var(--ui-background-01);border-collapse:collapse;border:2px solid var(--ui-background-09);font-family:'Lato',sans-serif;color:var(--ui-background-09)}#snowflake-blog-template-main-container table thead{background-color:var(--ui-01)}#snowflake-blog-template-main-container table th,#snowflake-blog-template-main-container table td{border:2px solid var(--ui-background-09);padding:var(--spacing-01)}","isGSAPEnabled":false,":type":"snowflake-site/components/markup-editor"},"experiencefragment-footer":{"id":"experiencefragment-98ca410452","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/fr/site/footer/master/jcr:content","configured":true,"xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/fr/site/footer/master.xfmodel.json",":type":"snowflake-site/components/experiencefragment"}},":itemsOrder":["experiencefragment-banner","experiencefragment-header","experiencefragment-sub-header","responsivegrid","container_47873732","experiencefragment-pre-footer","markup_editor","markup_editor-table","experiencefragment-footer"],":type":"wcm/foundation/components/responsivegrid"}},":itemsOrder":["root"],"locale":"fr"}
  