Class IcebergToolsS3
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic IcebergCatalogAdapter
createAdapter
(@Nullable String name, @NotNull Map<String, String> properties, @NotNull Map<String, String> hadoopConfig, @NotNull S3Instructions instructions) Create an Iceberg catalog adapter.static IcebergCatalogAdapter
createGlue
(@Nullable String name, @NotNull String catalogURI, @NotNull String warehouseLocation) Create an Iceberg catalog adapter for an AWS Glue catalog.static IcebergCatalogAdapter
createS3Rest
(@Nullable String name, @NotNull String catalogURI, @NotNull String warehouseLocation, @Nullable String region, @Nullable String accessKeyId, @Nullable String secretAccessKey, @Nullable String endpointOverride) Create an Iceberg catalog adapter for a REST catalog backed by S3 storage.
-
Constructor Details
-
IcebergToolsS3
public IcebergToolsS3()
-
-
Method Details
-
createS3Rest
public static IcebergCatalogAdapter createS3Rest(@Nullable @Nullable String name, @NotNull @NotNull String catalogURI, @NotNull @NotNull String warehouseLocation, @Nullable @Nullable String region, @Nullable @Nullable String accessKeyId, @Nullable @Nullable String secretAccessKey, @Nullable @Nullable String endpointOverride) Create an Iceberg catalog adapter for a REST catalog backed by S3 storage. Ifnull
is provided for a value, the system defaults will be used.- Parameters:
name
- the name of the catalog; if omitted, the catalog URI will be used to generate a namecatalogURI
- the URI of the Iceberg REST catalogwarehouseLocation
- the location of the S3 datafiles backing the catalogregion
- the AWS region; if omitted, system defaults will be usedaccessKeyId
- the AWS access key ID; if omitted, system defaults will be usedsecretAccessKey
- the AWS secret access key; if omitted, system defaults will be usedendpointOverride
- the S3 endpoint override; this is useful for testing with a S3-compatible local service such as MinIO or LocalStack- Returns:
- the Iceberg catalog adapter
-
createGlue
public static IcebergCatalogAdapter createGlue(@Nullable @Nullable String name, @NotNull @NotNull String catalogURI, @NotNull @NotNull String warehouseLocation) Create an Iceberg catalog adapter for an AWS Glue catalog. System defaults will be used to populate the region and credentials. These can be configured by following AWS Authentication and access credentials guide.- Parameters:
name
- the name of the catalog; if omitted, the catalog URI will be used to generate a namecatalogURI
- the URI of the AWS Glue catalogwarehouseLocation
- the location of the S3 datafiles backing the catalog- Returns:
- the Iceberg catalog adapter
-
createAdapter
public static IcebergCatalogAdapter createAdapter(@Nullable @Nullable String name, @NotNull @NotNull Map<String, String> properties, @NotNull @NotNull Map<String, String> hadoopConfig, @NotNull @NotNull S3Instructions instructions) Create an Iceberg catalog adapter.This is the preferred way to configure an Iceberg catalog adapter when the caller is responsible for providing AWS / S3 connectivity details; specifically, this allows for the parity of construction logic between Iceberg-managed and Deephaven-managed AWS clients. For advanced use-cases, users are encouraged to use
profiles
which allows a rich degree of configurability. Theinstructions
will automatically be used as special instructions ifIcebergReadInstructions.dataInstructions()
is not explicitly set. The caller is still responsible for providing any other properties necessary to configure theirCatalog
implementation.In cases where the caller prefers to use Iceberg's AWS properties (found amongst
AwsProperties
,S3FileIOProperties
, andHttpClientProperties
), they should useIcebergTools
directly. In this case, parity will be limited to whatS3InstructionsProviderPlugin
is able to infer; in advanced cases, it's possible that there will be a difference in construction logic between the Iceberg-managed and Deephaven-managed AWS clients which manifests itself as being able to browseCatalog
metadata, but not retrieveTable
data.Note: this method does not explicitly set, nor impose, that
S3FileIO
be used. It's possible that aCatalog
implementations depends on an AWS client for purposes unrelated to storing the warehouse data via S3.- Parameters:
name
- the name of the catalog; if omitted, the catalog URI will be used to generate a nameproperties
- a map containing the Iceberg catalog properties to usehadoopConfig
- a map containing Hadoop configuration properties to useinstructions
- the s3 instructions- Returns:
- the Iceberg catalog adapter
-