Skip to main content

pipes

Creates, updates, deletes, gets or lists a pipes resource.

Overview

Namepipes
TypeResource
Idsnowflake.pipe.pipes

Fields

The following fields are returned by SELECT queries:

A Snowflake pipe

NameDatatypeDescription
namestringName of the pipe
database_namestringDatabase in which the pipe is stored
schema_namestringSchema in which the pipe is stored
auto_ingestbooleanTRUE if all files from stage need to be auto-ingested
aws_sns_topicstringOptional, if provided, auto_ingest pipe will only receive messages from this SNS topic.
budgetstringName of the budget if the pipe is monitored by a budget
commentstringuser comment associated to an object in the dictionary
copy_statementstringCOPY INTO <table> statement used to load data from queued files into a Snowflake table. This statement serves as the text/definition for the pipe and is displayed in the SHOW PIPES output (pattern: (?i)^COPY INTO .*)
created_onstring (date-time)Date and time when the pipe was created.
error_integrationstringLink to integration object that point to a user provided Azure storage queue / SQS. When present, errors (e.g. ingest failure for Snowpipe or a user task failure or replication failure) will be sent to this queue to notify customers
integrationstringLink to integration object that ties a user provided storage queue to an auto_ingest enabled pipe. Required for auto_ingest to work on azure.
invalid_reasonstringDisplays some detailed information for your pipes that may have issues
ownerstringRole that owns the pipe
owner_role_typestringThe type of role that owns the pipe
patternstringPATTERN copy option value in the COPY INTO <table> statement in the pipe definition, if the copy option was specified.

Methods

The following methods are available for this resource:

NameAccessible byRequired ParamsOptional ParamsDescription
list_pipesselectdatabase_name, schema_name, endpointlikeList pipes
fetch_pipeselectdatabase_name, schema_name, name, endpointFetch a pipe
create_pipeinsertdatabase_name, schema_name, endpointcreateModeCreate a pipe
delete_pipedeletedatabase_name, schema_name, name, endpointifExistsDelete a pipe
refresh_pipeexecdatabase_name, schema_name, name, endpointifExists, prefix, modified_afterRefresh the pipe

Parameters

Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.

NameDatatypeDescription
database_namestringIdentifier (i.e. name) for the database to which the resource belongs. You can use the /api/v2/databases GET request to get a list of available databases.
endpointstringOrganization and Account Name (default: orgid-acctid)
namestringIdentifier (i.e. name) for the resource.
schema_namestringIdentifier (i.e. name) for the schema to which the resource belongs. You can use the /api/v2/databases/{database}/schemas GET request to get a list of available schemas for the specified database.
createModestringQuery parameter allowing support for different modes of resource creation. Possible values include: - errorIfExists: Throws an error if you try to create a resource that already exists. - orReplace: Automatically replaces the existing resource with the current one. - ifNotExists: Creates a new resource when an alter is requested for a non-existent resource.
ifExistsbooleanQuery parameter that specifies how to handle the request for a resource that does not exist: - true: The endpoint does not throw an error if the resource does not exist. It returns a 200 success response, but does not take any action on the resource. - false: The endpoint throws an error if the resource doesn't exist.
likestringQuery parameter to filter the command output by resource name. Uses case-insensitive pattern matching, with support for SQL wildcard characters.
modified_afterstring (date-time)Timestamp (in ISO-8601 format) of the oldest data files to copy into the Snowpipe ingest queue based on the LAST_MODIFIED date (i.e. date when a file was staged)
prefixstringPath (or prefix) appended to the stage reference in the pipe definition. The path limits the set of files to load.

SELECT examples

List pipes

SELECT
name,
database_name,
schema_name,
auto_ingest,
aws_sns_topic,
budget,
comment,
copy_statement,
created_on,
error_integration,
integration,
invalid_reason,
owner,
owner_role_type,
pattern
FROM snowflake.pipe.pipes
WHERE database_name = '{{ database_name }}' -- required
AND schema_name = '{{ schema_name }}' -- required
AND endpoint = '{{ endpoint }}' -- required
AND like = '{{ like }}';

INSERT examples

Create a pipe

INSERT INTO snowflake.pipe.pipes (
data__name,
data__comment,
data__auto_ingest,
data__error_integration,
data__aws_sns_topic,
data__integration,
data__copy_statement,
database_name,
schema_name,
endpoint,
createMode
)
SELECT
'{{ name }}' --required,
'{{ comment }}',
{{ auto_ingest }},
'{{ error_integration }}',
'{{ aws_sns_topic }}',
'{{ integration }}',
'{{ copy_statement }}' --required,
'{{ database_name }}',
'{{ schema_name }}',
'{{ endpoint }}',
'{{ createMode }}'
;

DELETE examples

Delete a pipe

DELETE FROM snowflake.pipe.pipes
WHERE database_name = '{{ database_name }}' --required
AND schema_name = '{{ schema_name }}' --required
AND name = '{{ name }}' --required
AND endpoint = '{{ endpoint }}' --required
AND ifExists = '{{ ifExists }}';

Lifecycle Methods

Refresh the pipe

EXEC snowflake.pipe.pipes.refresh_pipe 
@database_name='{{ database_name }}' --required,
@schema_name='{{ schema_name }}' --required,
@name='{{ name }}' --required,
@endpoint='{{ endpoint }}' --required,
@ifExists={{ ifExists }},
@prefix='{{ prefix }}',
@modified_after='{{ modified_after }}';