Проблема SAS: данные инфилируют, приводят к 0 наблюдениям

Сбрасывает ли websocket свои JSON перед отправкой в ​​поток?

blockquote>

Короткий ответ: иногда, но вы не можете зависеть от него.

Как указано в Joakim Erdfelt, соединения Websocket поддерживают как текстовые, так и двоичные сообщения.

JSON - это всего лишь один из способов переноса данных с преимуществом универсальности и простоты использования (хотя и расточительно, насколько это пространство .

Вы можете легко переносить двоичные данные с помощью API-интерфейса Websocket, устраняя накладные расходы на пропускную способность за счет других проблем (таких как конечность, длина слова, разбор и т. д.).

Многие браузеры также поддерживают сжатие сообщений Websocket в качестве расширения к протоколу Websocket (хотя сервер может не поддерживать расширение).

Расширения обсуждаются с использованием HTTP-заголовка Sec-WebSocket-Extensions. Переговоры обычно реализуются клиентом / сервером, не предлагая публичный API для их контроля.

До 2015 года в дикой природе существовал ряд подходов и реализаций, но с декабря 2015 года RFC 7692 является единственным реальным соперником для сжатия сообщений, и все гораздо яснее.

RFC 7692 сжимает все сообщение перед тем, как обернуть (и, возможно, фрагментировать) его в «пакеты» Websocket, что упрощает реализацию, чем некоторые предыдущие схемы сжатия.

В текущем проекте предлагается permessage-foo схема согласования сжатия (где foo является запрошенным / поддерживаемым сжатием).

Я сам испытал только расширение permessage-deflate.

Обратите внимание, что переговоры по расширению optional , что означает, что потенциальным сетевым клиентам обычно разрешается согласовывать соединения без сжатия, даже если ваш сервер поддерживает расширение.

Кроме того, RFC 7692 поддерживает выборочное сжатие, то есть некоторые сообщения могут быть сжаты, в то время как другие не сжаты ...

... например, [123456789,123456789] может быть отправлено как есть, так как длина указывает, что это вряд ли стоит усилий по сжатию.

Поддержка permessage-deflate (RFC 7692), 8 августа 2017 года:

Это комбинация информации в комментариях, последняя от 8 августа 2017 г.

Если я что-то пропустил, добавьте их здесь и обновите дату.

Известная поддержка браузера

  • Chrome с 32
  • Mozilla Firefox с 37
  • Safari - неподдерживаемый (10.1.2, похоже, использует x-webkit-deflate-frame)
  • Microsoft Edge - неподдерживается с версии 40

Известная поддержка сервера

0
задан Nicklovn 5 March 2019 в 18:15
поделиться

2 ответа

Поскольку файл XLSX является двоичным (в частности, это всего лишь ZIP-файл), ваш шаг данных не находит строк текста для чтения. Скорее всего, причина, по которой вы получили 0 наблюдений, заключается в том, что при поиске слова, разделенного вторым или третьим пробелом, оно читается за концом файла. Таким образом, шаг данных остановился на операторе INPUT и никогда не достигал конца первой итерации для записи наблюдения.

Вам понадобится либо использовать PROC IMPORT, либо оператор LIBNAME, использующий механизм XLSX, для чтения файла XLSX. Или используйте Excel, чтобы сохранить файл как текстовый файл с разделителями, и тогда вы сможете прочитать его, используя простой шаг данных.

0
ответ дан Tom 5 March 2019 в 18:15
поделиться

Если ваши данные представлены в формате Excel, вы можете выполнить PROC IMPORT, чтобы прочитать их.

PROC IMPORT DATAFILE="D:\folder1\folder2\myData.xlsx" DBMS=XLSX OUT=myData;
RUN;
0
ответ дан L Par 5 March 2019 в 18:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: