An extraction layer is the initial pipeline layer for source data entering Snowflake. It can hold internal or external stages, external tables, and raw structured or semistructured data before downstream processing. In an ELT flow, data is loaded without transformation so Snowflake can perform later transformations with its compute resources. section 11.1.2 section 11.1.3
Treat layers as logical units, not a fixed physical layout. An extraction layer may be a schema in a shared database or a separate database per source system; separating sources can simplify access control and preserve source-oriented schema organization. section 11.1.4
A practical extraction-layer implementation proceeds as follows:
- Create or use a storage integration, grant the pipeline role usage, and select the target database and extraction schema. section 11.2.1
- Create an external stage for cloud files and use LIST to verify that expected files are available. section 11.2.1
- Create a raw table with a VARIANT payload plus source filename and load timestamp, then COPY data from the stage and query it to validate the load. section 11.2.1
Raw JSON orders
A JSON orders stage feeds JSON_ORDERS_EXT. Each loaded row retains the JSON document in a VARIANT column and records metadata$filename and current_timestamp(), leaving business transformation for the next layer. section 11.2.1
Figure 11.2 ELT pattern where data is first extracted without transformations, loaded into Snowflake, and then transformed using Snowflake compute resources
The ELT flow places the extraction layer before Snowflake-based transformation: extract raw data, load it, then transform it. section 11.1.2
