4

我是 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'。

谁能帮我?谢谢!

4

1 回答 1

5

在 USE 命令中使用工作区的名称(如果使用的话)和反引号,如下所示:

USE `my-s3`.`<workspace-name>`; 
SHOW files; //should list test.csv file
SELECT * FROM `test.csv`;

使用 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"
    }
  }
}

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

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

<property>
  <name>fs.s3.awsSecretAccessKey</name>
  <value>SECRET</value>
</property>
于 2015-07-25T00:14:53.807 回答