无法在 Trino 中将目录设置为 backblaze

问题描述 投票:0回答:1

我正在尝试运行 POC 将 trino 查询数据放入 backblaze。

按照此示例:https://github.com/bitsondatadev/trino-getting-started/blob/main/hive/trino-b2/README.md让我遇到以下问题:

SQL Error [16777216]: Query failed (#20240531_002231_00032_e9wd4): Got exception: org.apache.hadoop.fs.s3a.AWSBadRequestException getFileStatus on s3://temporalTests/data/data.csv: com.amazonaws.services.s3.model.AmazonS3Exception:  (Service: Amazon S3; Status Code: 400; Error Code: 400 ; Request ID: f1a8d38c4e5afd88; S3 Extended Request ID: adUFuAGsobtRvT3evbss=; Proxy: null), S3 Extended Request ID: adUFuAGsobtRvT3evbss=:400 :  (Service: Amazon S3; Status Code: 400; Error Code: 400 ; Request ID: f1a8d38c4e5afd88; S3 Extended Request ID: adUFuAGsobtRvT3evbss=; Proxy: null)

我可以通过 sql 控制台和架构创建目录,但在创建表时会抛出错误。

CREATE CATALOG backblaze_catalog USING hive
WITH (
    "hive.metastore.uri" = 'thrift://hive-metastore:9083', -- hive metastore created in other container
    "hive.s3.aws-access-key" = 'KeyID',
    "hive.s3.aws-secret-key" = 'AppKeyId',
    "hive.s3.endpoint" = 'https://s3.us-west-123.backblazeb2.com',
    "hive.s3.path-style-access"='true',
    "hive.s3.region" = 'us-west-000',
    "hive.non-managed-table-writes-enabled" = 'true',
    "hive.storage-format" = 'CSV'
);

CREATE SCHEMA backblaze_catalog.raw_data
WITH (
    "location" = 's3a://temporalTests/'
);

CREATE TABLE backblaze_catalog.raw_data.sample_data (
    domain VARCHAR
)
WITH (
    format = 'CSV',
    external_location = 's3a://temporalTests/data/data.csv',
    skip_header_line_count = 1
);

我已经成功测试:

  • 通过B2 cli访问文件
  • 通过AWS cli访问文件
  • 使用 Boto3 的一组键来获取文件元数据 ok
  • 我没有使用 MinIO 来访问我的 docker compose 中的 s3

我做错了什么吗?

谢谢。

amazon-web-services amazon-s3 presto trino backblaze
1个回答
0
投票

您的表定义引用 B2 中的文件 - 它应该引用“目录”(从技术上讲,是一个前缀,因为云对象存储中不存在目录)。从表定义中删除

data.csv
,它应该可以工作:

CREATE TABLE backblaze_catalog.raw_data.sample_data (
    domain VARCHAR
)
WITH (
    format = 'CSV',
    external_location = 's3a://temporalTests/data/',
    skip_header_line_count = 1
);
© www.soinside.com 2019 - 2024. All rights reserved.