Как IBM SQL Query узнает схему, которую я использую в своих файлах CSV? - PullRequest
0 голосов
/ 27 апреля 2018

Мне интересно использовать службу IBM SQL Query , чтобы задавать вопросы о некоторых файлах, которые у меня есть в хранилище объектов, но как узнать, какую схему я использую в этих файлах. Откуда он знает типы данных, которые он должен использовать для столбцов в моих файлах CSV? Я не вижу никакого механизма "CREATE TABLE", который позволил бы мне определять имена полей и типы данных.

1 Ответ

0 голосов
/ 27 апреля 2018

IBM SQL Query использует схему при чтении. Он выполняет вывод схемы для каждого набора данных, на который ссылается запрос SQL. IBM SQL Query использует Apache Spark в качестве механизма выполнения, который также используется для вывода схемы.

В случае данных CSV (а также при запросе данных JSON) этот вывод схемы включал сканирование значений данных для получения типов данных для каждого столбца. Когда ваши объемы данных становятся больше, и вы хотите оптимизировать производительность ваших SQL, рекомендуется хранить ваши данные в немного более сложных форматах, таких как паркет, в котором метаданные сочетаются со значениями данных. Вывод схемы очень эффективен и быстр в этом случае, потому что IBM SQL Query нужно только прочитать нижний колонтитул паркета, чтобы получить схему ваших данных.

Этот эффект становится еще более очевидным, когда вы хотите запрашивать большие наборы данных, которые распределены по нескольким разделам объектов в хранилище объектов. В этом случае запрос IBM SQL действительно должен только извлечь один из объектов паркета (то есть один из разделов) и прочитать его нижний колонтитул, чтобы вывести схему для всего набора данных.

...