New in v20.1: The cockroach nodelocal upload command uploads a file to the external IO directory on a node's (the gateway node, by default) local file system.
This command takes in a source file to upload and a destination filename. It will then use a SQL connection to upload the file to the node's local file system, at externalIODir/destination/filename.
The source file is only uploaded to one node, not all of the nodes.
Required privileges
Only members of the admin role can run cockroach nodelocal upload. By default, the root user belongs to the admin role.
Considerations
The --external-io flag on the node you're uploading to cannot be set to disabled.
Synopsis
Upload a file:
$ cockroach nodelocal upload <location/of/file> <destination/of/file> [flags]
View help:
$ cockroach nodelocal upload --help
Flags
| Flag | Description |
|---|---|
--certs-dir |
The path to the certificate directory containing the CA and client certificates and client key. Env Variable: COCKROACH_CERTS_DIRDefault: ${HOME}/.cockroach-certs/ |
--echo-sql |
Reveal the SQL statements sent implicitly by the command-line utility. |
--host |
The server host and port number to connect to. This can be the address of any node in the cluster. Env Variable: COCKROACH_HOSTDefault: localhost:26257 |
--insecure |
Use an insecure connection. Env Variable: COCKROACH_INSECUREDefault: false |
--url |
A connection URL to use instead of the other arguments. Env Variable: COCKROACH_URLDefault: no URL |
--user-u |
The SQL user that will own the client session. Env Variable: COCKROACH_USERDefault: root |
Examples
Upload a file
To upload a file to the default node (i.e., the gateway node):
$ cockroach nodelocal upload ./grants.csv test/grants.csv --certs-dir=certs
successfully uploaded to nodelocal://1/test/grants.csv
Then, you can use the file to IMPORT or IMPORT INTO data.
Upload a file to a specific node
To upload a file to a specific node (e.g., node 2), use the --host flag:
$ cockroach nodelocal upload ./grants.csv grants.csv --host=localhost:26259 --insecure
successfully uploaded to nodelocal://2/grants.csv
Or, use the --url flag:
$ cockroach nodelocal upload ./grants.csv grants.csv --url=postgresql://root@localhost:26258?sslmode=disable --insecure
successfully uploaded to nodelocal://3/grants.csv
Then, you can use the file to IMPORT or IMPORT INTO data.