{"templateName":"blog-page","canonicalLink":"https://www.snowflake.com/ja/blog/snowpipe-streaming-iceberg-tables/","robotsTags":["index","follow"],"cssClassNames":"blog-page page basicpage summit-page","allowedRenditionsWidth":["320","480","640","768","960","1200","1440","1920"],"description":"Snowpipe Streamingを使用して、SnowflakeマネージドのApache Icebergテーブルにデータを簡単にストリーミングする方法をご紹介します。","language":"ja","title":"Snowflakeを使用したApache Icebergへのデータのストリーミング","analyticsPageType":"homepage","analyticsCategory":"general","analyticsSubCategory":"","excludeFromAnalytics":false,"analyticsDebugMode":false,"analyticsData":{"excludeFromAnalytics":false,"subCategory":"","pageType":"homepage","templateName":"blog-page","siteName":"snowflake","pageUrl":"/content/snowflake-site/global/ja/blog/snowpipe-streaming-iceberg-tables","language":"ja","category":"general","pageName":"Snowpipe Streamingで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"]},":mappedPath":"/ja/blog/snowpipe-streaming-iceberg-tables/",":type":"snowflake-site/components/structure/page",":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-1c06c16c85","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/pushdown-banner-blank/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/pushdown-banner-blank.xfmodel.json"},"experiencefragment-header":{"id":"experiencefragment-b8bb988818","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/ja/site/mega-nav-header/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/ja/site/mega-nav-header/master.xfmodel.json","languageNavPath":"/content/snowflake-site/global/ja/blog/snowpipe-streaming-iceberg-tables.languagenav.json","appliedCssClassNames":"snowflake-sticky-nav-host"},"experiencefragment-sub-header":{"id":"experiencefragment-464c2d18ac","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/ja/site/sub-navigation/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/ja/site/sub-navigation/master.xfmodel.json"},"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-1b33d35c00","breadcrumbItems":[{"title":"Blog","path":"/ja/blog/","active":false},{"title":"データエンジニアリング","active":false},{"title":"Snowpipe StreamingでApache Icebergへ簡単にストリーミング","path":"/ja/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-ca0f2a8c4f","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-8b5965d364",":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-2a646ea4d4",":type":"snowflake-site/components/container",":items":{"blog_hero":{"id":"blog-hero-83a6003e0c","showClaude":true,"showChatGpt":true,"timeToRead":"1","publicationDate":"AUG 25, 2026","image":{"id":"image-24e1bc5eeb","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--992647cd-932d-4ef5-b5ec-d3593e847cdd/sf-eng-blog-ml-2.png?quality=85&preferwebp=true","lazyEnabled":true,"isLcpImage":false,"width":"1680","height":"720",":type":"snowflake-site/components/image"},"authors":[{"authorImage":{"id":"image-ac8a5c015c","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--ebf3baf3-b763-4b40-9263-11d6bc388488/dave-matthews.jpg?quality=85&preferwebp=true","alt":"Headshot of Dave Matthews","lazyEnabled":true,"isLcpImage":false,"width":"192","height":"192",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-858dda0228","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/dave-matthews/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Dave Matthews"}}],"tag":{"tagText":"データエンジニアリング","tagColor":"#29B5E8"},"title":{"lines":["Snowpipe Streamingで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-51d7a42128","propertiesId":"","type":"heading2","lines":["インフラストラクチャの構築不要で本格的なストリーミングを評価"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_1":{"id":"blog-text-94648884ac","text":"\u003Cp\u003E\u003Cstrong\u003ESnowpipe Streamingが100万以上のTPSに耐えられるかどうかを確認したいチームにとって、確実な答えを得るための最短ルートが必要になります。\u003C/strong\u003E大規模なストリーミングには、特有の難しさがあると言われています。S3バケット、EKSクラスター、Kafkaトピック、IAMポリシーのセットアップに加え、それぞれ独自のバックログを抱える3つのプラットフォームチームからのセキュリティレビューと承認が必要になるため、チームが後回しにしがちなワークロードです。このようなセットアップでは、テストを開始する前に、追加のインフラストラクチャのプロビジョニングと調整が必要になる場合があります。これらのパイプラインが大規模に機能し、本番環境のボリュームを処理できることを証明すること自体が、通常は1つの独立したプロジェクトになります。\u003C/p\u003E\u003Cp\u003E今回のデモ環境では、この評価のセットアップと実行を半日で完了できました。\u003Ca href=\"https://www.snowflake.com/en/product/features/snowpipe-streaming/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ESnowpipe Streamingの高性能アーキテクチャ\u003C/a\u003Eを使用すると、すべてSnowflakeのインフラストラクチャ内で、100万TPS以上の速度で\u003Ca href=\"https://www.snowflake.com/en/developers/guides/apache-iceberg-snowflake-open-catalog-snowpipe-streaming/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003EApache Iceberg™形式\u003C/a\u003Eにデータをストリーミングできます。Snowparkコンテナサービス（SPCS）で実行されるコンテナが負荷を生成し、SDKを介してストリームし、SnowflakeマネージドのIcebergテーブルに格納します。これにより、データが到着すると同時にロールベースのアクセス制御（RBAC）、リネージ、マスキングがすべて適用され、Snowflakeで迅速にクエリを実行できるようになります。テスト環境では、デモの立ち上げ、エンドツーエンドのテスト、スループットの測定、そして解体を、すべて半日で完了しました。\u003C/p\u003E\u003Cp\u003E本記事では、この\u003Ca href=\"https://github.com/sfc-gh-damatthews/streaming-snowpipe-to-iceberg\" target=\"_blank\" rel=\"noopener noreferrer\"\u003EGitHubリポジトリ\u003C/a\u003Eを使用して、Icebergへのエンドツーエンドのストリーミングデモを実際に構築する方法を説明します。この例はPythonで記述されていますが、SDKのオプション（Java、Python、ノード、REST）をテストできるため、実際の成果を示してビジネスに自信を持って推奨できます。\u003C/p\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_2":{"id":"blog-title-951c524e75","propertiesId":"","type":"heading2","lines":["アーキテクチャ図：パターン"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_3":{"id":"blog-text-fea5ad0d28","text":"\u003Cp\u003EすべてがSnowflakeのインフラストラクチャ内で実行されるデモを構築したいと考えました。Snowparkコンテナサービス（\u003Ca href=\"https://docs.snowflake.com/en/developer-guide/snowpark-container-services/overview\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ESPCS\u003C/a\u003E）で実行される複数のDockerコンテナが、目標とする1秒あたりのトランザクション数で合成テストデータを生成し、\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowpipe-streaming/data-load-snowpipe-streaming-overview\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ESnowpipe Streaming SDK\u003C/a\u003Eを使用してストリーミングします。データは\u003Ca href=\"https://docs.snowflake.com/en/user-guide/tables-iceberg-internal-storage\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ESnowflakeマネージドのIcebergテーブル\u003C/a\u003Eに格納されます。これはオープンフォーマットであり、格納後数秒以内にクエリ可能で、Snowflake内でガバナンスが適用されます。認証は簡単です。SPCSは、短期間有効なOAuthトークンをコンテナに挿入し、Streaming SDKにそれを使用するように指示します。シークレットを管理する必要はありません。\u003C/p\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_4":{"id":"image-b77946b351","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--96595557-3c51-4b21-9d7f-7d2899f869b6/snowflake-architecture-diagram-showing-spcs-service-load.png?quality=85&preferwebp=true","alt":"Snowflake architecture diagram showing SPCS Service load generator streaming data to Iceberg Table via Snowpipe","lazyEnabled":true,"isLcpImage":true,"width":"1508","height":"676","title":"Figure 1: Snowpark Container Service to Iceberg",":type":"snowflake-site/components/image"},"blog_component_5":{"id":"blog-title-d911585286","propertiesId":"spcs","type":"heading2","lines":["負荷生成にSPCSを使用する理由"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_6":{"id":"blog-text-b334558e8f","text":"\u003Cp\u003E誤解のないように言えば、Snowpipe StreamingにSPCSは必須ではありません。SDKは、ノートパソコン、EC2インスタンス、Kubernetesポッドなど、どこでも実行できます。\u003C/p\u003E\u003Cp\u003ESPCSを使用すると、Snowflakeがすでに管理しているインフラストラクチャ上でサービスが完全に実行されるため、テストのために新しくプロビジョニングするものや追加の承認を管理する必要がなくなり、テストをより迅速に開始できます。\u003C/p\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_7":{"id":"blog-title-a84b7f64b0","propertiesId":"iceberg","type":"heading2","lines":["Icebergへの直接格納"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_8":{"id":"blog-text-ba4e39f6ff","text":"\u003Cp\u003Eターゲットは、SnowflakeマネージドのIcebergテーブルです。行はSDKを介してストリーミングされ、SnowflakeによってマネージドされるIcebergメタデータとともにParquetとして格納されます。必要に応じて後から独自のS3外部ボリュームを指定することも、評価後にマネージドのままにしておくこともできます。どちらの場合でもコードは変わりません。\u003C/p\u003E\u003Cp\u003E評価においては、セットアップの手間が省けることを意味します。Snowflakeマネージドのストレージ上のテーブルを使用すると、通常は最初に構成する必要がある外部ボリューム、ストレージ統合、クラウドストレージの権限設定を省略できます。\u003C/p\u003E\u003Cp\u003E本番環境に移行する準備が整ったら、3つの明確なパスがあります。\u003C/p\u003E\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003E外部ボリュームを使用するSnowflakeマネージドのIceberg：\u003C/strong\u003EParquetファイルはS3バケットに保存されます。外部エンジンは、メタデータにHorizon RESTカタログを使用して、S3から直接Parquetファイルを読み取ります。\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ESnowflakeストレージ上のSnowflakeマネージドのIceberg：\u003C/strong\u003EファイルはSnowflakeの内部ストレージに保存されます。このオプションでは、外部ボリュームと関連するクラウドストレージの構成を回避できます。今後の互換性のためにIcebergの機能を活用します。\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EネイティブSnowflakeテーブル：\u003C/strong\u003Eこの構成では、個別にマネージドされる外部ストレージインフラストラクチャは必要ありません。\u003C/li\u003E\u003C/ul\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_9":{"id":"blog-title-a8279f43ec","propertiesId":"","type":"heading2","lines":["デモ：実際の動作"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_10":{"id":"image-9c52e348ca","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--1bd3fa1b-924a-40f6-a1b7-240c6d2dd10a/terminal-output-showing-snowpipe-streaming-data-ingestion.png?quality=85&preferwebp=true","alt":"Terminal output showing Snowpipe Streaming data ingestion progress from configuration through verification stages","lazyEnabled":true,"isLcpImage":false,"width":"1023","height":"1158","title":"Figure 2: Demo of end to end streaming",":type":"snowflake-site/components/image"},"blog_component_11":{"id":"blog-text-6e5ed1b745","text":"\u003Cp\u003Eデモスクリプトを実行すると、SPCSサービスが開始され、プロデューサーが負荷の生成を開始し、コンシューマーがそれをIcebergテーブルにストリームするのを確認できます。\u003C/p\u003E\u003Cp\u003ESnowsightに切り替えると、ここでも行数が増加していることを確認できます。数百万の行が、格納されると同時にクエリ可能になります。\u003C/p\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_12":{"id":"blog-title-ce8d55f0a2","propertiesId":"","type":"heading2","lines":["コード：ご自身での構築"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_13":{"id":"blog-text-e3e741c19f","text":"\u003Cp\u003Eこの仕組みを理解しやすくするため、視覚的にわかりやすい疑似コードを以下に示します。コード全体はリポジトリにあり、以下にいくつかの代替デモへのリンクも掲載しています。\u003C/p\u003E\u003Cp\u003Eまずは、SnowflakeマネージドのIcebergテーブルとパイプから始めます：\u003C/p\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_14":{"id":"code-snippet-a19a76b64a","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-8dc573471e","text":"\u003Cp\u003ESnowpipe Streamingの高性能アーキテクチャはv2とv3の両方をサポートしていますが、パラメータを省略するとテーブルはデフォルトでv2になります。\u003C/p\u003E\n\u003Cp\u003E次に、コンシューマーです：\u003C/p\u003E\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_17":{"id":"code-snippet-81842be4ca","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-4e5349bcde","text":"\u003Cp\u003Eその後、短いサービス仕様でコンシューマーをSPCSに展開します。そして、データが取り込まれるのを確認します：\u003C/p\u003E","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_24":{"id":"code-snippet-e2e568c724","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-5708f730dd","text":"\u003Cp\u003EJava、ノード、RESTインターフェイスはすべて同じ形式に従います。つまり、チャネルを開き、行を挿入して、フラッシュします。リポジトリにはそれぞれ実際に動作する例があるため、ご自身のスタックに合ったものをテストできます。\u003C/p\u003E\u003Cp\u003Eご自身で試すには、リポジトリをご確認ください。\u003C/p\u003E\u003Cp\u003Eただし、Streaming SDKはHTTPS経由で別の取り込みエンドポイントを使用するため、Snowflake内で実行している場合でも、\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-7639f7bee5","propertiesId":"","type":"heading2","lines":["ベストプラクティス"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_29":{"id":"blog-title-f179b38b9f","propertiesId":"snowpipe-streaming","type":"heading3","lines":["Snowpipe Streamingによる自動バッチ処理"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_30":{"id":"blog-text-a5f0c4bd9d","text":"\u003Cp\u003ESnowpipe Streamingは、行ごとにファイルを書き込むことはありません。SDKは\u003Ccode\u003EappendRows\u003C/code\u003Eを呼び出すとすぐに行を送信しますが、サーバー側のバッファリング層がそれらを吸収して独自のタイミングでコミットを決定し、バックグラウンドでバッチ処理を行うため、行ごとにファイルが送信されることはありません。\u003C/p\u003E\n\u003Cp\u003Eさらに、Snowflakeが唯一のライターである\u003Ca href=\"https://docs.snowflake.com/en/user-guide/tables-iceberg-internal-storage\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ESnowflakeマネージドのIcebergテーブル\u003C/a\u003Eに対して、Snowflakeはバックグラウンドで自動コンパクションを実行します：小さなParquetファイルは大きなファイルにマージされ、小さなマニフェストもコンパクションされます。スケジュールを設定したり実行したりする必要はなく、通常の操作に組み込まれています。\u003C/p\u003E\n\u003Cp\u003Eユーザーができること：\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cb\u003E呼び出し前のクライアント側での行のバッチ処理：\u003C/b\u003E \u003Ccode\u003EappendRows\u003C/code\u003E：行を1つずつ送信すると、依然として行ごとに1回のラウンドトリップが発生する。これらを1回の呼び出しにバッチ処理することで、そのオーバーヘッドを軽減できる。これは、リクエストごとにより多くのデータを圧縮して送信するというSnowflake独自のガイダンスの背後にある原則と同じである\u003C/li\u003E\n\u003Cli\u003E\u003Cb\u003Eチャネルの長期間の維持：\u003C/b\u003Eマイクロバッチごとに開閉するのではなく、ソースパーティションごとにチャネルを1回開き、ジョブの実行中はそのチャネルを開いたままにする。これはSnowflakeがドキュメントで推奨する\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowpipe-streaming/snowpipe-streaming-high-performance-best-practices\" target=\"_blank\" rel=\"noopener noreferrer\"\u003Eベストプラクティス\u003C/a\u003E（\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowpipe-streaming/snowpipe-streaming-high-performance-best-practices\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ESnowpipe Streaming向け\u003C/a\u003E）であり、バックグラウンドですでに実行されているバッチ処理と競合することなくオーバーヘッドを削減する\u003C/li\u003E\n\u003Cli\u003E\u003Cb\u003E設定対象：\u003C/b\u003E \u003Ccode\u003ETARGET_FILE_SIZE\u003C/code\u003E \u003Cb\u003E（テーブル）：\u003C/b\u003EこれはSDKとは独立したテーブルレベルのプロパティであり、データがどのように取り込まれたかにかかわらず、新規書き込みとバックグラウンドコンパクションの両方でターゲットとするサイズをSnowflakeに指示する\u003C/li\u003E\n\u003Cli\u003E\u003Cb\u003Eスループットの活用：\u003C/b\u003E 持続的なTPSが高いほど、サーバー側のバッファがより速く満たされて自動的にフラッシュされる。これにより、特定のファイルサイズにおけるスループットとレイテンシーのトレードオフが効果的にもたらされる \u003C/li\u003E\n\u003C/ul\u003E\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_component_31":{"id":"blog-title-3bc4a23b14","propertiesId":"iceberg-v4","type":"heading2","lines":["今後の展望：Iceberg v4"],":type":"snowflake-site/components/blog/blog-title"},"blog_component_32":{"id":"blog-text-64c2e2d884","text":"\u003Cp\u003ESnowpipe Streamingと自動コンパクションは物理的なスモールファイルの問題に対処しますが、頻繁なコミットは依然としてIcebergのメタデータツリーにオーバーヘッドを生じさせる可能性があります。現在、各コミットは、たとえ1つの小さなファイルしか含まれていない場合でも、新しいメタデータJSON、マニフェストリスト、およびマニフェストを書き込みます。数秒ごとにコミットするワークロードの場合、その繰り返されるメタデータ処理がボトルネックになる可能性があります。\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;\"\u003EIceberg v4の提案では、その書き込み増幅を減らすために適応型メタデータツリー（Adaptive Metadata Tree）を導入しています。小さなコミットごとに新しいマニフェストを作成する代わりに、ルートマニフェストがそれらのコミットをインライン化できます。1回のParquet書き込みとアトミックなポインタの交換が現在のチェーンを置き換え、コミットごとのメタデータI/Oがマニフェスト数に応じて増加するのではなく、一定に保たれます。高頻度のストリーミングワークロードの場合、これによりストリーミングレイテンシーが大幅に向上する可能性があります。\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;\"\u003Eストリーミングは、Iceberg v4の主要なシナリオの1つです：数秒ごとにコミットするワークロードは、メタデータの書き込み増幅を直接露呈させるため、適応型メタデータツリーの利点が特に関連してきます。v4の仕様はまだ進化していますが、Icebergストリーミングがロードマップにある場合は注目する価値があります。Snowflakeは、このフォーマットの未来を形作るために積極的に参加していることを誇りに思っています。\u003C/span\u003E\u003C/p\u003E\n\u003Ch3\u003Eアーキテクチャへの影響\u003C/h3\u003E\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_text":{"id":"blog-text-0fe18075f6","text":"\u003Cp\u003E本記事では、IcebergへのSnowpipe Streamingがいかに効果的であるかを示しました。本格的なメディアや通信プラットフォームが稼働するような負荷において、このテストセットアップではS3バケット、EKSクラスター、Kafkaトピック、IAMロールを必要とせず、ワークロードはSnowflake内で実行され、評価後に破棄することができました。\u003C/p\u003E\n\u003Cp\u003E通常、チームとストリーミングテストの間に存在するインフラストラクチャ（バケット、クラスター、認証、承認など）は前提条件ではありません。「これが要件を満たしているか」という問いに迅速に答えることができます。\u003C/p\u003E\n\u003Cp\u003E大規模なメディアや通信プラットフォームのサイト信頼性エンジニアリング（SRE）またはデータエンジニアリングの担当者であり、Icebergストリーミングがロードマップにある場合は、調達サイクルではなくテストから始めることをお勧めします。ぜひリポジトリをクローンし、SPCSに展開して、その動作をご確認ください。\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\"https://github.com/sfc-gh-damatthews/streaming-snowpipe-to-iceberg\"\u003EGitHubリポジトリ\u003C/a\u003Eから今すぐお試しいただけます。\u003C/li\u003E\n\u003Cli\u003Eさらに詳しく知るには、\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowpipe-streaming/snowpipe-streaming-high-performance-iceberg\"\u003ESnowpipe 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-24acf2e361",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-component-top-padding-medium",":items":{"author_chip":{"id":"author-chip-c2896fe061","title":{"id":"title","type":"heading2","lines":["Learn more about the authors"],":type":"snowflake-site/components/title-v2"},"authors":[{"authorImage":{"id":"image-ac8a5c015c","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--ebf3baf3-b763-4b40-9263-11d6bc388488/dave-matthews.jpg?quality=85&preferwebp=true","alt":"Headshot of Dave Matthews","lazyEnabled":true,"isLcpImage":false,"width":"192","height":"192",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-858dda0228","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/dave-matthews/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Dave Matthews"},"authorTitle":"Senior Solution Engineer"}],":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-06d21365ed",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-component-top-padding-small",":items":{"share_article":{"id":"share-article-4047e1e91a","linkedInShareUrl":"https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fja%2Fblog%2Fsnowpipe-streaming-iceberg-tables&title=Snowpipe+Streaming%E3%81%A7Apache+Iceberg%E3%81%B8%E7%B0%A1%E5%8D%98%E3%81%AB%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0","twitterShareUrl":"https://x.com/intent/post?url=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fja%2Fblog%2Fsnowpipe-streaming-iceberg-tables&text=Snowpipe+Streaming%E3%81%A7Apache+Iceberg%E3%81%B8%E7%B0%A1%E5%8D%98%E3%81%AB%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0","facebookShareUrl":"https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fja%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-6702704bd4",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"blog_table_of_content":{"id":"blog-table-of-content-e306d18680","tableOfContents":[],":type":"snowflake-site/components/blog/blog-table-of-content"}},":itemsOrder":["blog_table_of_content"]},":type":"snowflake-site/components/flexible-column-container","isBlogPage":true,"isActiveTOC":false},"related_content":{"id":"related-content-2fe30b59fa","relatedContent":[{"configurationStatus":{"configured":true,"message":""},"tags":[{"tagText":"製品 & テクノロジー","tagColor":"#3F808A"}],"authors":[{"authorImage":{"id":"image-1b98d8a9d1","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,"isLcpImage":false,"width":"800","height":"800",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-a55f5288a6","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-d07ac680c7","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,"isLcpImage":false,"width":"2998","height":"3000",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-edcb4ef5bd","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"}}],":type":"snowflake-site/components/blog/card","title":{"lines":["Observe on Apache Icebergによるオープンなオブザーバビリティの実現"],"type":"heading4",":type":"snowflake-site/components/title-v2"},"button":{"id":"button-4ce480bb34","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/ja/blog/observe-apache-iceberg-open-observability/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Observe on Apache Icebergによるオープンなオブザーバビリティの実現"},"publicationDate":"JUL 30, 2026"},{"configurationStatus":{"configured":true,"message":""},"tags":[{"tagText":"データエンジニアリング","tagColor":"#29B5E8"}],"authors":[{"authorImage":{"id":"image-f22d311e42","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--bb3062e2-6de8-4d7c-9094-810ded903737/chasethomas.jpg?quality=85&preferwebp=true","lazyEnabled":true,"isLcpImage":false,"width":"400","height":"400",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-060a7cb57e","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-8ea7008ced","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--a8bebf48-2c53-48f8-94fd-41305c1adf18/praveen-gattu.png?quality=85&preferwebp=true","lazyEnabled":true,"isLcpImage":false,"width":"142","height":"146",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-093b292ef8","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"}}],":type":"snowflake-site/components/blog/card","title":{"lines":["Snowpipeストリーミングのハイパフォーマンスアーキテクチャへの移行"],"type":"heading4",":type":"snowflake-site/components/title-v2"},"button":{"id":"button-4ce480bb34","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/ja/blog/migrating-snowpipe-streaming-architecture/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Snowpipeストリーミングのハイパフォーマンスアーキテクチャへの移行"},"publicationDate":"JAN 31, 2026"}],":type":"snowflake-site/components/blog/related-content","isBlogPage":true}},":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-760a0207bd",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-container",":items":{"flexible_column_cont":{"id":"flexible-column-container-8436b7b47e","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-62f11ac7e0",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"marketo_v2":{"id":"marketo-v2-c70f01b119","marketoForm":{"successUrl":null,"edit":false,"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-c27e6a551d","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"]},":type":"snowflake-site/components/flexible-column-container","isBlogPage":true,"isActiveTOC":false}},":itemsOrder":["flexible_column_cont"]},"experiencefragment-pre-footer":{"id":"experiencefragment-1e010ad712","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/ja/site/get-started-pre-footer/get-started-pre-footer/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/ja/site/get-started-pre-footer/get-started-pre-footer.xfmodel.json"},"markup_editor":{"id":"markup-editor-09ad55fd2f","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}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false},"markup_editor-table":{"id":"markup-editor-aba96295ea","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)}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false},"experiencefragment-footer":{"id":"experiencefragment-e611b14a8a","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/ja/site/footer/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/ja/site/footer/master.xfmodel.json"}},":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"],":hierarchyType":"page",":path":"/content/snowflake-site/global/ja/blog/snowpipe-streaming-iceberg-tables","analyticsEnabled":true,"coveoConfig":{"searchHub":"snowflake.com","organizationId":"snowflakecomputingproduction8neljofn","apiKey":"xx335921a6-2a0a-40f2-a167-e390b4766c3d","pipeline":"snowflake.com"},"isPasswordProtected":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"],"locale":"ja"}
  