Apache Drill:在 s3 存储桶上找不到表

nic*_*cos 4 amazon-s3 apache-drill

我是 Apache Drill 的新手。

场景是这样的:

我有一个 S3 存储桶,我在其中放置了名为 test.csv 的 csv 文件。我已经按照官方网站的说明安装了 Apache Drill。

我按照本教程:https : //drill.apache.org/blog/2014/12/09/running-sql-queries-on-amazon-s3/创建一个 S3 插件。

我启动 Drill,使用正确的“工作区”(使用:use my-s3;),但是当我尝试从 test.cav 文件中选择记录时发生错误:

未找到表 's3./test.csv'。

谁能帮我?谢谢!

cat*_*aws 5

使用您的工作区的名称(如果您使用)并在 USE 命令中反勾,如下所示:

USE `my-s3`.`<workspace-name>`; 
SHOW files; //should list test.csv file
SELECT * FROM `test.csv`;
Run Code Online (Sandbox Code Playgroud)

使用 dfs 存储插件配置查询本地文件系统中的 CSV 以排除导致问题的标题之类的东西。如果您还没有看过此页面,可能会有所帮助。

上面评论中提到的存储插件:

    {
  "type": "file",
  "enabled": true,
  "connection": "s3n://<accesskey>:<secret>@catpaws",
  "workspaces": {},
  "formats": {
    "psv": {
      "type": "text",
      "extensions": [
        "tbl"
      ],
      "delimiter": "|"
    },
    "csv": {
      "type": "text",
      "extensions": [
        "csv"
      ],
      "delimiter": ","
    },
    "tsv": {
      "type": "text",
      "extensions": [
        "tsv"
      ],
      "delimiter": "\t"
    },
    "parquet": {
      "type": "parquet"
    },
    "json": {
      "type": "json"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

可能,这无关紧要。这是 Amazon S3 帮助的摘录,其中包含更多信息:

<property>
  <name>fs.s3.awsAccessKeyId</name>
  <value>ID</value>
</property>

<property>
  <name>fs.s3.awsSecretAccessKey</name>
  <value>SECRET</value>
</property>
Run Code Online (Sandbox Code Playgroud)