[{"data":1,"prerenderedAt":896},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fconnections\u002Fsnowflake":3},{"id":4,"title":5,"body":6,"description":887,"extension":888,"meta":889,"navigation":890,"path":891,"redirect":892,"seo":893,"stem":894,"__hash__":895},"docs\u002Fdocs\u002Fconnections\u002Fsnowflake.md","Snowflake Target",{"type":7,"value":8,"toc":870},"minimark",[9,14,23,31,36,54,58,171,175,186,448,453,534,538,612,616,638,641,645,648,709,712,716,720,746,750,757,761,764,811,815,835,839,866],[10,11,13],"h1",{"id":12},"snowflake-target","Snowflake target",[15,16,19],"alert",{"title":17,"type":18},"COMING SOON","warning",[20,21,22],"p",{},"Snowflake target support is under active development and not yet publicly available. The configuration and behavior described below reflect the current design and may change before release.",[20,24,25,26,30],{},"DBConvert Streams is adding Snowflake as a future ",[27,28,29],"strong",{},"target"," for Load workflows. The planned flow stages Parquet files before loading them into Snowflake.",[32,33,35],"h2",{"id":34},"prerequisites","Prerequisites",[37,38,39,43,46],"ul",{},[40,41,42],"li",{},"Network reachability to your Snowflake endpoint",[40,44,45],{},"Valid credentials with database\u002Fschema access",[40,47,48,49,53],{},"A Snowflake user stage (",[50,51,52],"code",{},"@~",") is used by default for file uploads",[32,55,57],{"id":56},"connection-settings","Connection settings",[59,60,61,77],"table",{},[62,63,64],"thead",{},[65,66,67,71,74],"tr",{},[68,69,70],"th",{},"Field",[68,72,73],{},"Required",[68,75,76],{},"Description",[78,79,80,98,110,122,135,147,159],"tbody",{},[65,81,82,88,91],{},[83,84,85],"td",{},[50,86,87],{},"account",[83,89,90],{},"Yes",[83,92,93,94,97],{},"Snowflake account identifier (e.g., ",[50,95,96],{},"xy12345.us-east-1",")",[65,99,100,105,107],{},[83,101,102],{},[50,103,104],{},"username",[83,106,90],{},[83,108,109],{},"Snowflake username",[65,111,112,117,119],{},[83,113,114],{},[50,115,116],{},"password",[83,118,90],{},[83,120,121],{},"Snowflake password",[65,123,124,129,132],{},[83,125,126],{},[50,127,128],{},"database",[83,130,131],{},"No",[83,133,134],{},"Default database",[65,136,137,142,144],{},[83,138,139],{},[50,140,141],{},"schema",[83,143,131],{},[83,145,146],{},"Default schema",[65,148,149,154,156],{},[83,150,151],{},[50,152,153],{},"warehouse",[83,155,131],{},[83,157,158],{},"Default warehouse",[65,160,161,166,168],{},[83,162,163],{},[50,164,165],{},"role",[83,167,131],{},[83,169,170],{},"Default role",[32,172,174],{"id":173},"stream-configuration","Stream configuration",[20,176,177,178,181,182,185],{},"The Snowflake target uses ",[50,179,180],{},"spec.snowflake"," with a required ",[50,183,184],{},"staging"," block that controls how intermediate Parquet files are generated and uploaded.",[187,188,193],"pre",{"className":189,"code":190,"language":191,"meta":192,"style":192},"language-json shiki shiki-themes github-light github-dark","{\n  \"name\": \"MySQL to Snowflake\",\n  \"mode\": \"load\",\n  \"source\": {\n    \"id\": \"conn_mysql\",\n    \"spec\": {\n      \"db\": {\n        \"database\": \"commerce\"\n      }\n    }\n  },\n  \"target\": {\n    \"id\": \"conn_snowflake\",\n    \"spec\": {\n      \"snowflake\": {\n        \"database\": \"ANALYTICS\",\n        \"schema\": \"PUBLIC\",\n        \"staging\": {\n          \"fileFormat\": \"parquet\",\n          \"outputDirectory\": \"\u002Ftmp\u002Fsnowflake-staging\",\n          \"format\": {\n            \"compression\": \"zstd\"\n          }\n        }\n      }\n    }\n  }\n}\n","json","",[50,194,195,204,221,234,243,256,264,272,283,289,295,301,309,321,328,336,348,361,369,382,395,403,414,420,426,431,436,442],{"__ignoreMap":192},[196,197,200],"span",{"class":198,"line":199},"line",1,[196,201,203],{"class":202},"sVt8B","{\n",[196,205,207,211,214,218],{"class":198,"line":206},2,[196,208,210],{"class":209},"sj4cs","  \"name\"",[196,212,213],{"class":202},": ",[196,215,217],{"class":216},"sZZnC","\"MySQL to Snowflake\"",[196,219,220],{"class":202},",\n",[196,222,224,227,229,232],{"class":198,"line":223},3,[196,225,226],{"class":209},"  \"mode\"",[196,228,213],{"class":202},[196,230,231],{"class":216},"\"load\"",[196,233,220],{"class":202},[196,235,237,240],{"class":198,"line":236},4,[196,238,239],{"class":209},"  \"source\"",[196,241,242],{"class":202},": {\n",[196,244,246,249,251,254],{"class":198,"line":245},5,[196,247,248],{"class":209},"    \"id\"",[196,250,213],{"class":202},[196,252,253],{"class":216},"\"conn_mysql\"",[196,255,220],{"class":202},[196,257,259,262],{"class":198,"line":258},6,[196,260,261],{"class":209},"    \"spec\"",[196,263,242],{"class":202},[196,265,267,270],{"class":198,"line":266},7,[196,268,269],{"class":209},"      \"db\"",[196,271,242],{"class":202},[196,273,275,278,280],{"class":198,"line":274},8,[196,276,277],{"class":209},"        \"database\"",[196,279,213],{"class":202},[196,281,282],{"class":216},"\"commerce\"\n",[196,284,286],{"class":198,"line":285},9,[196,287,288],{"class":202},"      }\n",[196,290,292],{"class":198,"line":291},10,[196,293,294],{"class":202},"    }\n",[196,296,298],{"class":198,"line":297},11,[196,299,300],{"class":202},"  },\n",[196,302,304,307],{"class":198,"line":303},12,[196,305,306],{"class":209},"  \"target\"",[196,308,242],{"class":202},[196,310,312,314,316,319],{"class":198,"line":311},13,[196,313,248],{"class":209},[196,315,213],{"class":202},[196,317,318],{"class":216},"\"conn_snowflake\"",[196,320,220],{"class":202},[196,322,324,326],{"class":198,"line":323},14,[196,325,261],{"class":209},[196,327,242],{"class":202},[196,329,331,334],{"class":198,"line":330},15,[196,332,333],{"class":209},"      \"snowflake\"",[196,335,242],{"class":202},[196,337,339,341,343,346],{"class":198,"line":338},16,[196,340,277],{"class":209},[196,342,213],{"class":202},[196,344,345],{"class":216},"\"ANALYTICS\"",[196,347,220],{"class":202},[196,349,351,354,356,359],{"class":198,"line":350},17,[196,352,353],{"class":209},"        \"schema\"",[196,355,213],{"class":202},[196,357,358],{"class":216},"\"PUBLIC\"",[196,360,220],{"class":202},[196,362,364,367],{"class":198,"line":363},18,[196,365,366],{"class":209},"        \"staging\"",[196,368,242],{"class":202},[196,370,372,375,377,380],{"class":198,"line":371},19,[196,373,374],{"class":209},"          \"fileFormat\"",[196,376,213],{"class":202},[196,378,379],{"class":216},"\"parquet\"",[196,381,220],{"class":202},[196,383,385,388,390,393],{"class":198,"line":384},20,[196,386,387],{"class":209},"          \"outputDirectory\"",[196,389,213],{"class":202},[196,391,392],{"class":216},"\"\u002Ftmp\u002Fsnowflake-staging\"",[196,394,220],{"class":202},[196,396,398,401],{"class":198,"line":397},21,[196,399,400],{"class":209},"          \"format\"",[196,402,242],{"class":202},[196,404,406,409,411],{"class":198,"line":405},22,[196,407,408],{"class":209},"            \"compression\"",[196,410,213],{"class":202},[196,412,413],{"class":216},"\"zstd\"\n",[196,415,417],{"class":198,"line":416},23,[196,418,419],{"class":202},"          }\n",[196,421,423],{"class":198,"line":422},24,[196,424,425],{"class":202},"        }\n",[196,427,429],{"class":198,"line":428},25,[196,430,288],{"class":202},[196,432,434],{"class":198,"line":433},26,[196,435,294],{"class":202},[196,437,439],{"class":198,"line":438},27,[196,440,441],{"class":202},"  }\n",[196,443,445],{"class":198,"line":444},28,[196,446,447],{"class":202},"}\n",[449,450,452],"h3",{"id":451},"target-fields","Target fields",[59,454,455,468],{},[62,456,457],{},[65,458,459,461,463,466],{},[68,460,70],{},[68,462,73],{},[68,464,465],{},"Default",[68,467,76],{},[78,469,470,484,500,517],{},[65,471,472,476,478,481],{},[83,473,474],{},[50,475,128],{},[83,477,90],{},[83,479,480],{},"—",[83,482,483],{},"Target Snowflake database",[65,485,486,490,492,497],{},[83,487,488],{},[50,489,141],{},[83,491,131],{},[83,493,494],{},[50,495,496],{},"PUBLIC",[83,498,499],{},"Target schema",[65,501,502,507,509,514],{},[83,503,504],{},[50,505,506],{},"schemaPolicy",[83,508,131],{},[83,510,511],{},[50,512,513],{},"fail_if_exists",[83,515,516],{},"How to handle existing tables",[65,518,519,524,526,531],{},[83,520,521],{},[50,522,523],{},"writeMode",[83,525,131],{},[83,527,528],{},[50,529,530],{},"fail_if_not_empty",[83,532,533],{},"How to handle existing rows",[449,535,537],{"id":536},"staging-fields","Staging fields",[59,539,540,552],{},[62,541,542],{},[65,543,544,546,548,550],{},[68,545,70],{},[68,547,73],{},[68,549,465],{},[68,551,76],{},[78,553,554,580,595],{},[65,555,556,561,563,568],{},[83,557,558],{},[50,559,560],{},"staging.fileFormat",[83,562,131],{},[83,564,565],{},[50,566,567],{},"parquet",[83,569,570,571,573,574,573,577],{},"Intermediate file format: ",[50,572,567],{},", ",[50,575,576],{},"csv",[50,578,579],{},"jsonl",[65,581,582,587,589,592],{},[83,583,584],{},[50,585,586],{},"staging.outputDirectory",[83,588,131],{},[83,590,591],{},"System temp dir",[83,593,594],{},"Local directory for intermediate files before upload",[65,596,597,602,604,609],{},[83,598,599],{},[50,600,601],{},"staging.format.compression",[83,603,131],{},[83,605,606],{},[50,607,608],{},"zstd",[83,610,611],{},"Compression for intermediate files",[32,613,615],{"id":614},"how-loading-works","How loading works",[617,618,619,622,625,628],"ol",{},[40,620,621],{},"Source data is converted to Parquet format",[40,623,624],{},"Parquet files are organized per table with Hive-style partitioning",[40,626,627],{},"Files are uploaded to a Snowflake stage",[40,629,630,633,634,637],{},[50,631,632],{},"COPY INTO"," loads the data with ",[50,635,636],{},"USE_LOGICAL_TYPE = TRUE"," for correct type handling",[20,639,640],{},"Multiple Parquet chunk files per table are consolidated into the target table automatically.",[32,642,644],{"id":643},"why-parquet","Why Parquet",[20,646,647],{},"Parquet is the default and recommended format for Snowflake targets.",[59,649,650,663],{},[62,651,652],{},[65,653,654,657,660],{},[68,655,656],{},"Aspect",[68,658,659],{},"Parquet",[68,661,662],{},"CSV.gz",[78,664,665,676,687,698],{},[65,666,667,670,673],{},[83,668,669],{},"Loading method",[83,671,672],{},"Vectorized",[83,674,675],{},"Line-by-line parsing",[65,677,678,681,684],{},[83,679,680],{},"Schema",[83,682,683],{},"Self-describing",[83,685,686],{},"Requires manual mapping",[65,688,689,692,695],{},[83,690,691],{},"Type safety",[83,693,694],{},"Validated at write time",[83,696,697],{},"Runtime errors",[65,699,700,703,706],{},[83,701,702],{},"Analytical queries",[83,704,705],{},"Column pruning",[83,707,708],{},"Full scan required",[20,710,711],{},"No additional configuration is needed — the stream generates Parquet files with zstd compression by default.",[32,713,715],{"id":714},"type-handling","Type handling",[449,717,719],{"id":718},"timestamps","Timestamps",[20,721,722,723,725,726,728,729,573,732,573,735,573,738,741,742,745],{},"Snowflake's ",[50,724,632],{}," command runs with ",[50,727,636],{},", which ensures Parquet logical types are interpreted correctly. Supported types: ",[50,730,731],{},"DATE",[50,733,734],{},"TIME",[50,736,737],{},"DATETIME",[50,739,740],{},"TIMESTAMP",", and ",[50,743,744],{},"TIMESTAMP WITH TIME ZONE",".",[449,747,749],{"id":748},"binary-data-blobs","Binary data (BLOBs)",[20,751,752,753,756],{},"MySQL BLOB and binary columns are automatically base64-encoded and mapped to ",[50,754,755],{},"VARCHAR"," in Snowflake. This avoids UTF-8 validation errors during Parquet loading. The conversion is transparent — no manual configuration needed.",[32,758,760],{"id":759},"verification","Verification",[20,762,763],{},"After a stream completes, verify the data in Snowflake:",[187,765,769],{"className":766,"code":767,"language":768,"meta":192,"style":192},"language-sql shiki shiki-themes github-light github-dark","-- Check row counts\nSELECT COUNT(*) FROM my_table;\n\n-- Verify timestamp values\nSELECT created_at FROM my_table LIMIT 5;\n\n-- Check binary data (stored as base64)\nSELECT LENGTH(picture_column) FROM my_table WHERE picture_column IS NOT NULL;\n","sql",[50,770,771,776,781,787,792,797,801,806],{"__ignoreMap":192},[196,772,773],{"class":198,"line":199},[196,774,775],{},"-- Check row counts\n",[196,777,778],{"class":198,"line":206},[196,779,780],{},"SELECT COUNT(*) FROM my_table;\n",[196,782,783],{"class":198,"line":223},[196,784,786],{"emptyLinePlaceholder":785},true,"\n",[196,788,789],{"class":198,"line":236},[196,790,791],{},"-- Verify timestamp values\n",[196,793,794],{"class":198,"line":245},[196,795,796],{},"SELECT created_at FROM my_table LIMIT 5;\n",[196,798,799],{"class":198,"line":258},[196,800,786],{"emptyLinePlaceholder":785},[196,802,803],{"class":198,"line":266},[196,804,805],{},"-- Check binary data (stored as base64)\n",[196,807,808],{"class":198,"line":274},[196,809,810],{},"SELECT LENGTH(picture_column) FROM my_table WHERE picture_column IS NOT NULL;\n",[32,812,814],{"id":813},"limitations","Limitations",[37,816,817,823,829],{},[40,818,819,822],{},[27,820,821],{},"Target only"," — Snowflake is not supported as a source",[40,824,825,828],{},[27,826,827],{},"Load mode only"," — CDC is not supported for Snowflake targets",[40,830,831,834],{},[27,832,833],{},"Binary size"," — base64 encoding adds ~33% size overhead for BLOB columns",[32,836,838],{"id":837},"related-docs","Related docs",[37,840,841,848,854,860],{},[40,842,843],{},[844,845,847],"a",{"href":846},"\u002Fdocs\u002Fstreams\u002Fstream-config-reference","Stream Configuration Reference",[40,849,850],{},[844,851,853],{"href":852},"\u002Fdocs\u002Fintegration\u002Fconversion-mode","Understanding Load Mode",[40,855,856],{},[844,857,859],{"href":858},"\u002Fdocs\u002Fconnections\u002Fconnection-management","Connection Management",[40,861,862],{},[844,863,865],{"href":864},"\u002Fdocs\u002Foperations\u002Ftroubleshooting","Troubleshooting",[867,868,869],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":192,"searchDepth":206,"depth":206,"links":871},[872,873,874,878,879,880,884,885,886],{"id":34,"depth":206,"text":35},{"id":56,"depth":206,"text":57},{"id":173,"depth":206,"text":174,"children":875},[876,877],{"id":451,"depth":223,"text":452},{"id":536,"depth":223,"text":537},{"id":614,"depth":206,"text":615},{"id":643,"depth":206,"text":644},{"id":714,"depth":206,"text":715,"children":881},[882,883],{"id":718,"depth":223,"text":719},{"id":748,"depth":223,"text":749},{"id":759,"depth":206,"text":760},{"id":813,"depth":206,"text":814},{"id":837,"depth":206,"text":838},"Snowflake target configuration for DBConvert Streams — staging, type handling, and stream setup.","md",{},false,"\u002Fdocs\u002Fconnections\u002Fsnowflake",null,{"title":5,"description":887},"docs\u002Fconnections\u002Fsnowflake","MOTufIogQ_M6gj05V3O-KmG13QvFFMWmHjzoN5RLoOA",1783896284373]