2015-09-15 5 views
0

Я пытаюсь создать (как можно проще) «что-то вроде Google Analytics». Это означает: я хочу хранить объекты с небольшим количеством информации (размер < 2KB) с веб-страницы на некоторое хранилище и иметь возможность запросить его.Хранение событий большого трафика с веб-страниц в Google Cloud

У меня есть код JS, который отправляет эти объекты событий в конечную точку PHP в Google App Engine. Затем эта конечная точка вставляет его в Google BigQuery. Вот моя проблема: вставка выполняется через библиотеку PHP API Google - запрос REST. Таким образом, он выполняет HTTP-запрос, который очень медленный.

Мой вопрос: есть ли способ хранения событий в облаке Google Cloud? Лучше (и более экономически выгодно?) Использовать PubSub или Redis для хранения событий там и иметь некоторых работников в фоновом режиме, которые загружают эту очередь в BigQuery?

Любая идея, как сделать это как эффективную (как по производительности, так и по стоимости), как можно скорее была бы оценена!

ответ

0

Если бы мне пришлось это сделать, я бы сначала сделал обработчик конечных точек, сохраняя необработанные данные в push queue, потому что в App Engine относительно быстро загружается файл. Обработка данных и вызовы API BigQuery будут выполняться позже в очереди задач.

Я думаю, что производительность и стоимость, которые вы можете получить, также немного меняются в зависимости от языка App Engine (PHP, Go, Java, ...).

+0

Вау! Толкающая очередь является удивительной для того, что я пытаюсь сделать, большое вам спасибо! В настоящее время я строю простой MVP, поэтому выбор языка не так важен сейчас, я думаю. Но запрос REST в коде конечной точки меня прослушивал. Еще раз спасибо! –

Смежные вопросы