CREATE LINK
Warning
SingleStore 9.0 gives you the opportunity to preview, evaluate, and provide feedback on new and upcoming features prior to their general availability. In the interim, SingleStore 8.9 is recommended for production workloads, which can later be upgraded to SingleStore 9.0.
On this page
Create a new connection link to S3, Azure, GCS, HDFS, HTTP, Kafka, MongoDB®, or MySQL for a permitted user.
Syntax
CREATE LINK [IF NOT EXISTS] [db_name.]connection_name AS
{ S3 | AZURE | GCS | HDFS | HTTP | KAFKA | MONGODB | MYSQL }
CREDENTIALS 'credentials_json'
[ CONFIG 'configuration_json' ]
[ DESCRIPTION 'description' ]
Remarks
-
db_
is the name of the SingleStore database.name It is an optional parameter. If not specified, the connection link is created in the current (context) database. -
CONFIG
andCREDENTIALS
can be specified in either order (CONFIG
followed byCREDENTIALS
orCREDENTIALS
followed byCONFIG
). -
The
CONFIG
andCREDENTIALS
expect json formatted information.Refer to the examples below. For more configuration examples, refer to BACKUP DATABASE. -
connection_
is a user defined name of the connection link.name -
Only users with
CREATE LINK
permission can create a connection link. -
description
specifies the details related to the connection link. -
Commands such as
BACKUP
,RESTORE
,CREATE PIPELINE
, andSELECT
support connection links.Refer to any of these commands for details on the credentials_
andjson configuration_
clauses.json -
This command causes implicit commits.
Refer to COMMIT for more information. -
This command can be used to create regular and encrypted HTTP links.
Refer to Using HTTP connection links for more information and examples. -
For EKS IRSA support refer Enable EKS IRSA
-
Refer to the Permission Matrix for the required permission.
Examples
AWS S3 Example
The configuration_
and credentials_
for AWS connections look like this:
CREDENTIALS '{
"aws_access_key_id": "replace_with_your_access_key_id",
"aws_secret_access_key": "replace_with_your_secret_access_key"
[, "aws_session_token": "replace_with_your_temp_session_token"]
[, "role_arn":"replace_with_your_role_arn"]
}'
CONFIG: ‘{
"region": "your_region",
"endpoint_url": "http://other_endpoint"
[,"x-amz-server-side-encryption":"<encryption_type>" [, "x-amz-server-side-encryption-aws-kms-key-id":"<optional_key>" ] |
"x-amz-server-side-encryption-customer-algorithm":"<encryption_type>",
"x-amz-server-side-encryption-customer-key":"<encrypted_or_unencrypted_key>",
"x-amz-server-side-encryption-customer-key-MD5":"<key>"
]
}'
For other options for the CONFIG clause (disable_
, request_
, and others) see CREATE PIPELINE.
The following example demonstrates how to create an S3 connection link product_
to the database Orderdb
.
CREATE LINK Orderdb.product_S3 AS S3CREDENTIALS '{"aws_access_key_id":"your_access_key_id","aws_secret_access_key":"your_secret_access_key"}'CONFIG '{"region":"us-east-1"}'DESCRIPTION 'Products ordered in December';
Azure Example
The credentials_
for Azure looks like this:
CREDENTIALS '{
"account_name": "your_account_name",
"account_key": "encrypted_key"
}';
The following example shows how to create an Azure connection link.
CREATE LINK [db_name.]connection_name AS AZURECREDENTIALS '{"account_name": "your_account","account_key": "encrypted_key"}';
For more information about Azure credentials, see Azure Blob Pipeline Syntax.
GCS Example
The credentials_
for GCS looks like this:
CREDENTIALS '{
"access_id": "your_google_access_key",
"secret_key": "your_google_secret_key"
};
The following example demonstrates how to create a GCS connection link called mylink
.
CREATE LINK mylink AS GCS CREDENTIALS '{"access_id": "your_google_access_key","secret_key": "your_google_secret_key"}';
For more information about GCS credentials, see CREATE PIPELINE.
HDFS Example
The login for HDFS cluster is performed via a keytab file, so typically credentials_
is left blank and config_
is used.mylink
:
CREATE LINK mylink AS HDFSCREDENTIALS ''CONFIG '{"hadoop.security.authentication": "kerberos","kerberos.user": "user@masked_host","kerberos.keytab": "/opt/software/adkeytabs/user.keytab","dfs.client.use.datanode.hostname": true,"dfs.datanode.kerberos.principal": "hdfs/_HOST@masked_host","dfs.namenode.kerberos.principal": "hdfs/_HOST@masked_host"}';
For more information about HDFS credentials, see Advanced HDFS Pipeline Mode.
HTTP Example
The following example demonstrates how to create an HTTP link.
CREATE LINK test AS HTTP CREDENTIALS '{"headers": {"Authorization": "Basic cm9vdDp0ZXN0aW5nCg=="}}';
Refer to Using HTTP connection links for more information and examples.
Kafka Example
The credentials_
and config_
for Kafka can be complex.
The following example demonstrates how to create a Kafka connection link for Confluent Cloud.
CREATE LINK mylink AS KAFKACONFIG '{"security.protocol": "sasl_ssl","sasl.mechanism": "PLAIN"}'CREDENTIALS '{"sasl.username": "your_sasl_username","sasl.password": "your_sasl_secret_key"}';
MongoDB® Example
Here's a sample syntax to create a link to a MongoDB® endpoint:
CREATE LINK <linkname> AS MONGODBCONFIG '{"mongodb.hosts":"<Hostname>","collection.include.list": "<Collection list>","mongodb.ssl.enabled":"true","mongodb.authsource":"admin"}'CREDENTIALS '{"mongodb.user":"<username>","mongodb.password":"<password>"}';
For more information, refer to Replicate Data from MongoDB®.
MySQL Example
Here's a sample syntax to create a link to a MySQL endpoint:
CREATE LINK <linkname> AS MYSQLCONFIG '{"database.hostname": "<Hostname>","database.exclude.list": "<database_list>","database.port": 3306,"database.ssl.mode":"required"}'CREDENTIALS '{"database.password": "<password>","database.user": "<username>"}';
For more information, refer to Replicate Data from MySQL.
Last modified: August 20, 2024