Проблема YQL - «Текущая таблица заблокирована» - PullRequest
4 голосов
/ 23 января 2011

Я новичок в YQL и у меня возникли проблемы с получением данных.Запрос, который я пытаюсь выполнить:

select * from yahoo.finance.historicaldata where symbol = "TW.L" and startDate = "01/01/2011" and endDate = "22/01/2011"

Мне удалось получить некоторую информацию, используя такой запрос, через консоль YQL без проблем.Теперь, когда бы я ни пытался, я получаю какой-то XML обратно, который содержит сообщение:

Текущая таблица 'yahoo.finance.historicaldata' была заблокирована.Он превысил выделенные квоты либо времени, либо инструкций

Я предполагаю, что это своего рода ограничение скорости, но я почти уверен, что я не приблизился к 1000 запросам в час, указанным в качестве ограничения.Кроме того, я получаю HTTP-ответ 200, а не 999 (что, по-видимому, является статусом, который вы получаете, когда у вас ограничен тариф).

Может кто-нибудь сказать мне, почему я получаю это сообщение, что ячто с этим делать, и как я могу остановить это снова!?

Спасибо, - Крис

Ответы [ 3 ]

6 голосов
/ 24 января 2011

Я думаю, что это сообщение не имеет никакого отношения к ограничению скорости на вашей стороне, а скорее к глобальной блокировке этой таблицы, например Я получаю то же сообщение об ошибке при попытке доступа к этой таблице. Поэтому я предпочитаю предположить, что кто-то другой слишком часто запрашивал эту таблицу, что, в свою очередь, привело к блокировке этой таблицы, как показано в сообщении об ошибке.

Внутренние элементы этой таблицы показывают, что она отправляет два запроса CSV-серверу, расположенному по адресу http://ichart.finance.yahoo.com/table.csv. Вы можете проверить внутренние компоненты здесь, чтобы увидеть, что делается в части javascript этой таблицы: https://github.com/spier/yql-tables/blob/master/yahoo/finance/yahoo.finance.historicaldata.xml

Я знаю, что это не решит вашу проблему с использованием таблицы YQL, но если у вас по-прежнему возникают проблемы с этой таблицей, то вам, вероятно, следует просто запросить файл CSV напрямую, а не просматривать таблицу YQL.

Если вы все еще хотите узнать, в чем проблема с этой таблицей YQL, вы можете опубликовать свой вопрос непосредственно на форуме YQL на Yahoo: http://developer.yahoo.net/forum/?showforum=41&cookiecheckonly=1

Пожалуйста, напишите здесь также, если вы хотите узнать что-нибудь еще об этом. Thx.

2 голосов
/ 31 декабря 2011

Я думаю, что здесь могут быть две связанные проблемы: слишком много инструкций и слишком частый запуск.

Когда я запускаю ваш запрос в [консоли YQL] [yql], я вижу ответ частично:

<javascript execution-time="6783" instructions-used="50024350" table-name="yahoo.finance.historicaldata"/>
<javascript name="yahoo.finance.historicaldata" verb="select">
<![CDATA[java.lang.RuntimeException: Too many instructions executed: 50024350]]>
</javascript>

Вы видите проблему "слишком много выполненных инструкций".

Глядя на пример запроса для этой таблицы, похоже, что даты начала и окончания этой таблицы используют формат гггг-мм-дд. Таким образом, ваш запрос может быть переписан как:

select * from yahoo.finance.historicaldata where 
  symbol = "TW.L" and 
  startDate = "2011-01-01" and 
  endDate = "2011-01-22"

Этот обновленный запрос работал у меня пару раз, но теперь я получаю еще одну ошибку при блокировке таблицы:

<javascript name="yahoo.finance.historicaldata" verb="select">
<![CDATA[com.yahoo.platforms.pipes.model.ModuleException: Error Codes: 
js.blocked.execute.request Message: "The current table 'yahoo.finance.historicaldata' 
has been blocked. It exceeded the allotted quotas of either time or instructions"]]>
</javascript>

Возможно, что одно ведет к другому; другими словами, неправильно сформированный запрос вызывает выполнение стольких инструкций, что вызывает блокировку таблицы.

0 голосов
/ 24 января 2011

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

...