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.`.`;