Skip to main content

Connector service data sources

This page describes the configuration parameters for each supported data source type. Connector and Worker resources are provisioned by a Workspace Administrator using these parameters; Data Scientists and Data Engineers then open connections and stream data using the provisioned connector and worker references.

Note

The data sources available in your environment depend on which Connector Templates your Platform Administrator has published. Contact your Platform Administrator if a data source type you need is not listed.

The examples on this page use a client created as shown in Connector service Python client.

PostgreSQL​

Stream tabular data from a PostgreSQL database using SQL queries or table extraction.

Connector configuration​

ParameterDescription
PGHOSTDatabase host (required)
PGPORTDatabase port (default: 5432)
PGDATABASEDatabase name (required)
PGUSERDatabase user (required)
PGPASSWORDDatabase password (use Secure Store instead of inline values)
PGSCHEMAPostgreSQL schema (default: public)
PGSSLMODESSL mode: disable, require, verify-ca, or verify-full (default: disable)

Streaming a query​

import os

with client.open_session(
workspace_id=os.environ["WORKSPACE_ID"],
connector="connectors/<connector-id>",
worker="workers/<worker-id>",
extraction={"query": "SELECT id, name, amount FROM orders WHERE status = 'completed'"},
) as session:
session.stream_to_csv("orders.csv")

Supported data types​

PostgreSQL types are mapped to the following column types in the stream schema:

PostgreSQL TypeOutput Type
booleanBoolean
smallintInt16
integerInt32
bigintInt64
realFloat32
double precisionFloat64
numeric / decimalDecimal (sent as a string to preserve precision)
text, varchar, char, nameString
byteaBinary
dateDate
timeTime
timetzString
timestampTimestamp
timestamptzTimestamp with time zone
uuidUUID (string value)
jsonJSON (string value)
jsonbJSONB (string value)
intervalInterval (string value)
Arrays of integer, float, boolean, text, or uuidJSON (JSON-encoded array)
Other arraysString (PostgreSQL array literal, for example {a,b,c})
NULLNull

Snowflake​

Stream tabular data from a Snowflake data warehouse using SQL queries or table extraction.

Connector configuration​

ParameterDescription
SNOWFLAKE_ACCOUNTSnowflake account identifier (required)
SNOWFLAKE_USERSnowflake user
AUTH_TYPEAuthentication method: password or keypair (required)
SNOWFLAKE_PASSWORDSnowflake password, for AUTH_TYPE=password (use Secure Store instead of inline values)
SNOWFLAKE_PRIVATE_KEYPEM-encoded, unencrypted PKCS#8 private key, for AUTH_TYPE=keypair (use Secure Store instead of inline values)
SNOWFLAKE_DATABASEDatabase name (required)
SNOWFLAKE_SCHEMASchema name (required)
SNOWFLAKE_WAREHOUSECompute warehouse to use
SNOWFLAKE_ROLEOptional role to assume
Note

Snowflake requires PKCS#8 keys. If your key starts with -----BEGIN RSA PRIVATE KEY-----, it is in PKCS#1 format. Convert it with openssl pkcs8 -topk8 -nocrypt -in key.pem -out key-pkcs8.pem.

Streaming a query​

with client.open_session(
workspace_id=os.environ["WORKSPACE_ID"],
connector="connectors/<connector-id>",
worker="workers/<worker-id>",
extraction={"query": "SELECT * FROM SALES_DATA WHERE REGION = 'EMEA'"},
) as session:
# Stream to a pandas DataFrame
df = session.stream_to_pandas()
print(f"Loaded DataFrame with shape {df.shape}")

# To write Parquet instead, open a new session and call
# session.stream_to_parquet("sales_data.parquet")
Note

The Snowflake user and role must have USAGE privileges on the database, schema, and warehouse specified in the connector configuration, and SELECT on the tables you query. Contact your Workspace Administrator if you receive authorization errors.


Amazon S3​

Download files from an S3 bucket. Supports both single-object downloads and prefix-based batch downloads.

Connector configuration​

ParameterDescription
PROVIDERSet to s3
AWS_BUCKETS3 bucket name (required)
AWS_REGIONAWS region (required)
AWS_ACCESS_KEY_IDAWS access key ID (use Secure Store instead of inline values)
AWS_SECRET_ACCESS_KEYAWS secret access key (use Secure Store instead of inline values)
AWS_SESSION_TOKENOptional STS session token for temporary credentials

If you do not set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, the worker uses the default AWS credential chain. For example, it can use an IAM role for service accounts (IRSA) that is attached to the worker.

Downloading a single file​

with client.open_session(
workspace_id=os.environ["WORKSPACE_ID"],
connector="connectors/<connector-id>",
worker="workers/<worker-id>",
extraction={"paths": {"paths": [{"pattern": "data/exports/report.csv"}]}},
) as session:
n_files, total_bytes = session.stream_to_files("downloads/")
print(f"Downloaded {n_files} file(s), {total_bytes} bytes total")

Downloading files by prefix​

Use a pattern that ends in / to download all objects under that path. A pattern without a trailing / or * is treated as a single object key.

with client.open_session(
workspace_id=os.environ["WORKSPACE_ID"],
connector="connectors/<connector-id>",
worker="workers/<worker-id>",
extraction={"paths": {"paths": [{"pattern": "exports/2026/q1/"}]}},
) as session:
n_files, total_bytes = session.stream_to_files("downloads/")
Note

Each file is written under the output directory using its full object key. For example, exports/2026/q1/report.csv is written to downloads/exports/2026/q1/report.csv.

Note

The IAM identity used by the connector requires s3:GetObject to download a single object, and s3:GetObject plus s3:ListBucket to download by prefix.


MinIO (S3-compatible)​

MinIO and other S3-compatible object stores are supported using the same blob worker with a custom endpoint.

Connector configuration​

ParameterDescription
PROVIDERSet to minio
AWS_BUCKETBucket name (required)
AWS_ENDPOINT_URLMinIO endpoint URL (required)
AWS_ACCESS_KEY_IDAccess key ID (required; use Secure Store instead of inline values)
AWS_SECRET_ACCESS_KEYSecret access key (required; use Secure Store instead of inline values)
AWS_DISABLE_HTTPSSet to true for plaintext (non-TLS) endpoints

The worker always uses path-style addressing for MinIO.

Downloading files​

with client.open_session(
workspace_id=os.environ["WORKSPACE_ID"],
connector="connectors/<connector-id>",
worker="workers/<worker-id>",
extraction={"paths": {"paths": [{"pattern": "my-prefix/"}]}},
) as session:
n_files, total_bytes = session.stream_to_files("downloads/")

Google Cloud Storage​

Download files from a GCS bucket.

Connector configuration​

ParameterDescription
PROVIDERSet to gcs
GCS_BUCKETGCS bucket name (required)
GOOGLE_APPLICATION_CREDENTIALSOptional path to a service account key file inside the worker pod

If you do not set GOOGLE_APPLICATION_CREDENTIALS, the worker uses Application Default Credentials, such as GKE Workload Identity.

Note

GOOGLE_APPLICATION_CREDENTIALS is a file path, not the key itself. In this release, you cannot store the service account key in Secure Store for this data source. Use one of these options instead:

  • Workload Identity (recommended): leave GOOGLE_APPLICATION_CREDENTIALS unset. The worker uses the Google service account bound to the worker pod's Kubernetes service account. No key is stored.
  • Key file from a Kubernetes Secret: an administrator stores the key in a Kubernetes Secret and mounts it into the worker container through the Worker's pod template. Set GOOGLE_APPLICATION_CREDENTIALS to the mounted file path, for example /var/secrets/gcs-key.json.

Azure Blob Storage​

Download files from an Azure Blob Storage container.

Connector configuration​

ParameterDescription
PROVIDERSet to azblob
AZURE_STORAGE_ACCOUNTStorage account name (required)
AZURE_STORAGE_CONTAINERContainer name (required)
AZURE_STORAGE_KEYStorage account key (use Secure Store instead of inline values)

If you do not set AZURE_STORAGE_KEY, the worker uses Azure default credentials, such as a managed identity.

Note

The data source type for Azure Blob Storage is azure-blob. The PROVIDER value is azblob.


Troubleshooting​

SymptomCauseResolution
Authorization error on SnowflakeThe user or role lacks USAGE on the database, schema, or warehouse, or SELECT on the tableAsk your Workspace Administrator to grant the required Snowflake privileges and update the connector's SNOWFLAKE_ROLE
AUTH_TYPE is required on SnowflakeThe connector configuration does not set AUTH_TYPESet AUTH_TYPE to password or keypair
AccessDenied on S3 prefix downloadThe IAM identity lacks s3:ListBucketPrefix downloads require bucket-level list permission; single-key downloads need only s3:GetObject
AccessDenied on S3 single-key download of a missing objectWithout s3:ListBucket, S3 reports a missing key as AccessDenied, not NoSuchKeyCheck that the object key is correct
[INTERNAL] internal server error when downloading a single objectThe object key does not exist or has a leading slash. The client does not show a "not found" error for a missing object.Check the key. S3 keys do not start with /: use exports/file.csv, not /exports/file.csv
A prefix download returns 0 filesNo object matches the prefix, or the prefix has a leading slashCheck the prefix. A prefix that matches nothing is not an error
Connection fails immediately with credentials errorThe password or key in the connector configuration is wrong or expiredAsk your Workspace Administrator to update the connector credentials
No rows returned from a queryThe query returned zero resultsVerify the query filter conditions and that the target table has data

Feedback