Class IcebergToolsS3
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic IcebergCatalogAdaptercreateAdapter(@Nullable String name, @NotNull Map<String, String> properties, @NotNull Map<String, String> hadoopConfig, @NotNull S3Instructions instructions) Create an Iceberg catalog adapter.static IcebergCatalogAdaptercreateGlue(@Nullable String name, @NotNull String catalogURI, @NotNull String warehouseLocation) Create an Iceberg catalog adapter for an AWS Glue catalog.static IcebergCatalogAdaptercreateS3Rest(@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. Ifnullis 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
profileswhich allows a rich degree of configurability. Theinstructionswill 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 theirCatalogimplementation.In cases where the caller prefers to use Iceberg's AWS properties (found amongst
AwsProperties,S3FileIOProperties, andHttpClientProperties), they should useIcebergToolsdirectly. In this case, parity will be limited to whatS3InstructionsProviderPluginis 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 browseCatalogmetadata, but not retrieveTabledata.Note: this method does not explicitly set, nor impose, that
S3FileIObe used. It's possible that aCatalogimplementations 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
-