Skip to main content
Keep your S3 data in the same AWS region as your StarTree cluster. For BYOC deployments, StarTree creates an S3 gateway endpoint in your cluster’s region, so reads from buckets in that region stay on the AWS private network. A gateway endpoint does not cover buckets in other regions. Reads from those buckets go through your VPC’s NAT Gateway (node → NAT Gateway → Internet Gateway → public S3 endpoint). For large datasets, the NAT Gateway processing charges show up on your AWS bill and can be significant. A one-time read may not justify moving the data, but the charges from repeatedly reading a large dataset add up quickly.If the bucket has to stay in a different region, set up a cross-region S3 interface endpoint (AWS PrivateLink) before you onboard the data. See Networking and data transfer costs for details.
1

In the Data Portal, click Tables and then click Create Table.

2

Select S3 as the Data Source.

3

Create a New Connection.

Click New Connection. If you want to use an existing connection, select the connection from the list and proceed to Step 5.Enter a Source Name for the new connection.Select the Authentication Type from the drop-down list.
4

Configure Connection Parameters.

Connecting to S3 Using Basic Authentication

Use the following JSON configuration when S3 is set up with basic authentication using an access key and secret key.

Property Descriptions

Connecting to S3 Using IAM-Based Authentication

Please follow these steps to create IAM role for S3 setup.Use the following JSON configuration when S3 is set up with IAM-based authentication by assuming an IAM Role for secure access.

Property Descriptions

5

Test the Connection and Configure Data Ingestion.

After you have configured the connection properties, test the connection to ensure it is working.

Configure Data Ingestion

When the connection is successful, use the following JSON to configure additional data settings:

Property Descriptions

Configure Record Reader

Configure the record reader to customize how the file format is read during ingestion.
The CSVRecordReaderConfig is used for handling CSV files with the following customizable options:
  • header: Provide a header when the input file has no headers.
  • skipHeader: Provide an alternate header when the input file has a corrupt header.
  • delimiter: Use an alternate delimiter when fields are not separated by the default delimiter comma.
  • skipUnParseableLines: Skip records that are not parseable instead of failing ingestion.
Example: Provide a header when the input file has no headers.
Example: Provide an alternate header when the input file has a corrupt header.
Example: Use an alternate delimiter when fields are not separated by the default delimiter comma.
OR
Example: Skipping records that are not parseable instead of failing ingestion. This option to be used with caution as it can lead to data loss.
Example: Handling CSV files with no header, tab-separated fields, empty lines, and unparsable records.
For a comprehensive list of available CSV record reader configurations, see the Pinot CSV documentation.
One configuration option AvroRecordReaderConfig is supported.
  • enableLogicalTypes: Enable logical type conversions for specific Avro logical types, such as DECIMAL, UUID, DATE, TIME_MILLIS, TIME_MICROS, TIMESTAMP_MILLIS, and TIMESTAMP_MICROS.
For example, if the schema type is INT, logical type is DATE, the conversion applied is a TimeConversion, and the value is V; then a date is generated V days from epoch start.
For Parquet files, Data Manager provides the ParquetRecordReaderConfig with customizable configurations in Data Manager.Use Parquet Avro Record Reader:
When this config is used the parquet record reader used is: org.apache.pinot.plugin.inputformat.parquet.ParquetAvroRecordReaderUse Parquet Native Record Reader:
When this config is used the parquet record reader used is: org.apache.pinot.plugin.inputformat.parquet.ParquetNativeRecordReader
6

Preview the Data

Click Show Sample Data to preview the source data before finalizing the configuration.

Next Step

Proceed with Data Modeling.