-- Create external stage for S3
CREATE OR REPLACE STAGE s3_stage
URL = 's3://my-bucket/snowflake-data/'
STORAGE_INTEGRATION = s3_integration
FILE_FORMAT = (TYPE = CSV SKIP_HEADER = 1);
-- List files
LIST @s3_stage;
-- Load from external stage
COPY INTO my_table
FROM @s3_stage/
PATTERN = '.*\.csv'
ON_ERROR = 'SKIP_FILE';
-- Create storage integration (ACCOUNTADMIN)
CREATE STORAGE INTEGRATION s3_integration
TYPE = EXTERNAL_STAGE
STORAGE_PROVIDER = S3
STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::123456:role/snowflake-role'
STORAGE_ALLOWED_LOCATIONS = ('s3://my-bucket/');
DESC STORAGE INTEGRATION s3_integration;
-- Use the AWS_IAM_USER_ARN and EXTERNAL_ID to set up trust
Similar patterns for Azure Blob (AZURE_INTEGRATION) and GCS (STORAGE_PROVIDER = GCS).