influxdb3 import from-object-store

The influxdb3 import from-object-store command imports every Parquet file found recursively under a prefix into an existing InfluxDB 3 Enterprise database and table. InfluxDB 3 Enterprise reads the source files itself, using its own object store credentials, so file bytes never stream through the influxdb3 client or the machine that runs it.

This command needs the write action on the target database, for example, db:DATABASE_NAME:write.

Usage

influxdb3 import from-object-store [OPTIONS] <SOURCE>

Arguments

ArgumentDescription
<SOURCE>Where to read the Parquet files from: a prefix in InfluxDB 3 Enterprise’s own object store (for example, some/prefix), or an s3://bucket/prefix URL. Every other URL scheme is rejected with an HTTP 400 error. Every .parquet file found recursively under the prefix is imported as its own job.

Options

OptionDescriptionDefaultEnvironment variable
-H--host <HOST_URL>Host URL of the InfluxDB 3 Enterprise serverhttp://127.0.0.1:8181INFLUXDB3_HOST_URL
--token <AUTH_TOKEN>Authentication tokenINFLUXDB3_AUTH_TOKEN
-d--database <DATABASE>Target database name
-t--table <TABLE>Target table name
--column <COLUMN>Map a Parquet column to an InfluxDB type: <column>=<type>. See import upload column type mapping for supported types. Can be specified multiple times.
--tls-ca <CA_CERT>Path to a custom TLS certificate authorityINFLUXDB3_TLS_CA
--tls-no-verifyDisable TLS certificate verification (not recommended in production)INFLUXDB3_TLS_NO_VERIFY
-h--helpPrint help information
--help-allPrint detailed help information

How the server reads the source

InfluxDB 3 Enterprise uses its own configured object store credentials to read the source. You don’t send credentials in the command.

  • When <SOURCE> names a prefix in InfluxDB 3 Enterprise’s own object store, staging each file is a copy within that same store.
  • When <SOURCE> names an external S3 bucket, InfluxDB 3 Enterprise’s own object store must also be S3 (or an S3-compatible endpoint set with --aws-endpoint). If it isn’t, InfluxDB 3 Enterprise has no credentials to reach another bucket and rejects the request with an HTTP 400 error. InfluxDB 3 Enterprise’s credentials must also be able to read the source bucket. This is typically automatic within one AWS account, and otherwise possible only when a bucket policy on the source bucket grants that access.

For an external S3 bucket, InfluxDB 3 Enterprise first tries a true S3 server-side copy: a single request that moves the file directly between buckets without streaming its bytes through InfluxDB 3 Enterprise. Server-side copy applies only when all of the following hold:

  • Both the source and destination object stores are S3 (or an S3-compatible endpoint set with --aws-endpoint).
  • InfluxDB 3 Enterprise’s credentials can read the source bucket and write the destination bucket.
  • The source file is smaller than 5 GiB.

When any of these doesn’t hold, InfluxDB 3 Enterprise falls back automatically to streaming the file through itself (never through the influxdb3 client) and logs a warning. Control this behavior with the --import-attempt-server-side-copy server option (default true). Set it to false to always use the streamed fallback.

You can’t use your object store’s root, or the reserved uploaded_imports/ prefix, as an import source. Choose a dedicated prefix for your source files.

Examples

In the examples below, replace the following:

  • DATABASE_NAME: the name of the target database
  • TABLE_NAME: the name of the target table
  • AUTH_TOKEN: your authentication token

Import from the server’s own object store

influxdb3 import from-object-store \
  --host http://localhost:8181 \
  --token 
AUTH_TOKEN
\
--database
DATABASE_NAME
\
--table
TABLE_NAME
\
parquet-imports/2025-01/

Import from an S3 bucket

influxdb3 import from-object-store \
  --host http://localhost:8181 \
  --token 
AUTH_TOKEN
\
--database
DATABASE_NAME
\
--table
TABLE_NAME
\
s3://my-bucket/parquet-exports/

Import with column type mapping

influxdb3 import from-object-store \
  --host http://localhost:8181 \
  --token 
AUTH_TOKEN
\
--database
DATABASE_NAME
\
--table
TABLE_NAME
\
--column timestamp=time \ --column host=tag \ --column cpu_usage=f64 \ s3://my-bucket/parquet-exports/

Was this page helpful?

Thank you for your feedback!