Как получить самые последние строки в наборах данных 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.