devinrsmith / deephaven-minio

Deephaven and MinIO configuration example

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

deephaven-minio

A quick example of how to get Deephaven and MinIO configured.

It's important to configure MinIO to accept virtual host-style resolution, as that's the preferred mode of operation for AWS SDK for Java 2.x1. This can be configured with the environment variable MINIO_DOMAIN. For easy DNS via docker, each bucket can then be added as a network alias. This solution works for simple examples, but more complex setups may need to have a proper DNS service to support dynamic bucket names.

Assuming the parquet file exists, with bucket "test-data" and key "my-file.parquet", the following query should then succeed:

from deephaven import parquet
from deephaven.experimental import s3
from datetime import timedelta

my_table = parquet.read(
    "s3://test-data/my-file.parquet",
    special_instructions=s3.S3Instructions(
        region_name="aws-global",
        endpoint_override="http://minio.example.com:9000",
        access_key_id="minioadmin",
        secret_access_key="minioadmin",
    ),
)

Footnotes

  1. Deephaven could allow forcePathStyle to be configured to enable path-style resolution, which could simplify deployment complexity in cases where users don't want to manage subdomains.

About

Deephaven and MinIO configuration example