Запрос отлично работает в браузере, но не работает в CLI - PullRequest
1 голос
/ 18 апреля 2020

У меня установлен тест TP C -H. Я могу запустить эту команду в браузере, и она отлично работает:

select * from h_customer;

Но если я запускаю ее из Linux CLI, она просто никогда не вернется.

Если я изменю его, чтобы он был меньше, он будет работать в CLI:

select * from h_customer limit 10;

Это возвращает просто отлично. Затем я могу продолжить:

select * from h_customer limit 100; -- This works.
select * from h_customer limit 1000; -- This hangs.

Представление «История» показывает, что сервер получил запрос с «пределом 1000» и обработал его правильно. Он был запущен за разумное время, и представление истории показывает 1000 строк.

Я могу воспроизвести это с другими таблицами и запросами. Кажется, это проблема объема данных на стороне клиента. Но возвращение 1000 строк должно быть тривиальным. И я ожидаю, что он вернется гораздо больше.

1 Ответ

3 голосов
/ 18 апреля 2020

Снежинка отправляет небольшие наборы результатов непосредственно клиенту. Для более крупных он направляет клиента в кэш набора результатов для загрузки одного или нескольких сжатых файлов. Кэш результирующих наборов поступает от облачного провайдера, а не напрямую от snowkecomputing.com.

1000 строк - это одно пороговое значение для переключения между ними, и я видел, что очень широкие таблицы делают то же самое с меньшим количеством строк. Затем клиент пытается загрузить файл S3, Azure blob или GCS, в зависимости от того, где работает Snowflake. Что-то блокирует загрузку этих файлов вашим клиентом Linux.

Обычно это брандмауэр с проверкой пакетов с отслеживанием состояния, например, из Пало-Альто или Cisco. Иногда они дешифруют трафик HTTPS c и отбрасывают пакеты, которые выглядят так, как будто это «Snowkecomputing.com», но исходят из AWS, Azure или GCP.

Это также может быть прокси-сервер. Так как он работает из браузера, что-то другое между тем, как они собирают большие наборы результатов. В браузере может быть настроен прокси. Вы можете установить прокси-сервер для всех клиентов Snowflake, включая Snow SQL https://docs.snowflake.com/en/user-guide/snowsql-start.html#using -a-proxy-server .

Обратитесь к сетевой команде, чтобы узнать, сбрасывает ли что-то пакеты с сервера. облачный провайдер или snowkecomputing.com.

...