Как получить самые последние строки в наборах данных Socrata SODA со времени последнего запроса?

Я использую Splunk для анализа открытых данных SFGov (data.sfgov.org), представляющих собой систему Socrata.

Я могу скачать данные JSON и анализировать вещи в автономном режиме. Сейчас я внедряю автоматическую индексацию обновлений наборов данных (каждый день).

Я пытаюсь выяснить, какие поля API Socrata на самом деле использовать для получения новых записей со времени моего последнего опроса.

Я знаю, что могу использовать опцию $where URL для повторной фильтрации параметров:creation_at и:updated_at, но есть ли идентификатор строки или последний индекс или что-то в этом роде? Я буду поддерживать локальное состояние на стороне ответвления в последней выбранной строке, например,

Например, если последний ряд, который я получил прошлой ночью, был 18104, то для проверки Тонита я попрошу опубликовать строки> 18104.

Заранее спасибо! Я использую Python для автоматизации.

------ добавлено 11/02/2016 ---

В настоящее время я тестирую вручную этот тип GET (протестировал его с помощью hurl.it)

https://data.sfgov.org/resource/nwsr-z4mh.json? $ where =: made_at между '2016-10-23T18:00:00' и '2016-11-03T00:00:00'&$order=: made_at DESC&$select=:*, *

  • для этого используется системное поле: made_at в наборе данных Socrata.
  • Он возвращает записи, созданные между этими временными метками. Кажется, это работает.

Поэтому, если бы я поместил это в python, мне нужно просто сохранить предыдущую дату и время выборки и сделать 'и' и надеяться получить последние созданные записи.

Я предпочитаю ссылаться на ROW#, но пока не знаю, как использовать параметр id":"row-8aiu.d5x4~8rdi".

1 ответ

Похоже, вы уже поступаете правильно. Вы просто хотите сохранить последние :created_at или же :updated_at и использовать это в вашем $where для вашего следующего запроса.

Вы не можете сделать $where=:updated_at > :row-... потому что идентификаторы строк являются идентификаторами, а не datetime.

Другие вопросы по тегам