Apache Drill: Как запросить все файлы в корзине S3?

Я использую Apache Drill 1.10 на OSX. У меня есть S3 bucket с примерно 150 файлами, и я установил соединение между ними согласно документации Drill.

Я могу видеть все файлы в ведре от Drill:

jdbc:drill:zk=local> USE `s3`.`root`;
+-------+--------------------------------------+
|  ok   |               summary                |
+-------+--------------------------------------+
| true  | Default schema changed to [s3.root]  |
+-------+--------------------------------------+
1 row selected (1.123 seconds)

jdbc:drill:zk=local> SHOW files; 
<shows table of 15 files>

И я могу успешно запрашивать отдельные файлы:

jdbc:drill:zk=local> select * from s3.`ocds-b5fd17-00ec7c92-54f3-4c50-8214-8b8c0cf9ff09-140281-qc54303.json`;
<returns results>

Но как мне сделать запрос по всему каталогу? В локальной файловой системе я бы просто поставил подстановочный знак, как dfs,/path/*.json, но это не работает с S3:

jdbc:drill:zk=local> select * from s3.`*.json`;
Error: VALIDATION ERROR: Can not create a Path from an empty string
SQL Query null

2 ответа

Решение

Я понял это, записав это здесь для кого-то еще с такой же проблемой.

Создайте каталог в корне корзины, который называется, например, releasesи поместите туда файлы.

Затем вы можете просто запросить все файлы в каталоге с помощью:

select * from s3.`releases`;

Следующий запрос будет выполняться по корневому каталогу:

select * from s3.`.`;
Другие вопросы по тегам