
UsulPro
25.05.2018
12:12:33

Евгений
25.05.2018
12:18:34

Andy
25.05.2018
12:30:29

Alex
25.05.2018
12:32:26
Товарищи, подскажите пакет, который можно вызывать при старте node в тестовом режиме (из кода) и который в консоль будет показывать, мол, пакет, который прописан в package.json и установленный по факту отличаются)

Google

Grigoriy
25.05.2018
12:32:50

Alex
25.05.2018
12:32:57
а то часто бывают моменты, когда кто-то обновит версию пакета, запушит, дургие разработчики забирают изменения, а npm update сделать забудут.

IGOR
25.05.2018
12:34:34

Grigoriy
25.05.2018
12:36:40
код дай createJsonOfModelsInSeries

Cenator
25.05.2018
12:37:00

Alex
25.05.2018
12:37:26

Cenator
25.05.2018
12:37:35

Grigoriy
25.05.2018
12:37:57
а еще может эксепшен кидается предыдущей функцией какой-то

IGOR
25.05.2018
12:41:44

Stepan
25.05.2018
12:43:48

IGOR
25.05.2018
12:44:31

Google

Stepan
25.05.2018
12:45:23

IGOR
25.05.2018
12:46:03

Stepan
25.05.2018
12:46:06
можешь ее код скинуть


IGOR
25.05.2018
12:47:11
можешь ее код скинуть
function createJsonOfModelsInSeries(seriesLink) {
return new Promise((resolve, reject) => {
try{
nightmare.goto(seriesLink)
.wait(timeDelay)
.inject('js', './jquery-3.3.1.min.js')
.wait(timeDelay)
.scrollTo(999999999999999999999999999, 0)
.evaluate(function() {
let colNames = []
var shortNames = []
$('table > thead > tr > th').each(
function(index, element) {
let str = $(element).text().replace(/ /g, '_')
colNames.push(str)
})
$('table > tbody > tr').each(
function(index, element) {
var item = {}
let link = $(element).find('a').attr('href')
if (!!link) {
if (shortNames.indexOf(link) === -1) {
item['link'] = link
let arr = []
let i = 0
$(element).find('.tplvalue.cell-level.data-model').each(
function(index, element) {
let elVal = $(element).html()
if (arr.indexOf(elVal) === -1) {
arr.push(elVal)
item[colNames[index]] = $(element).html()
i++
}
})
shortNames.push(item)
}
}
})
return shortNames
})
.end()
.then(result => {resolve(result)
});
}catch(e){
console.log(e)
reject(e)
}
})
}


Stepan
25.05.2018
12:51:11


Kronic
25.05.2018
12:51:56
"лишь бы заработало" - с этих слов всегда начинается история любого велосипеда...

Grigoriy
25.05.2018
12:59:44
выведи console.log внутри своей функции
проверь сколько раз она реально стреляет
мне кажется тебе надо прибиндить в кэлбек твоего возвращаемого промиза переданный аргумент
а то он каждый раз работает с актуальным обьектом и возможно 10 раз делает одно и то же
хотя нет, там seriesLink делается через let, значит каждый раз новый

Stepan
25.05.2018
13:03:08

Grigoriy
25.05.2018
13:03:33
а вот в верхней функции seriesLinks куда ведет. так-то в асюнк ты ее обернул, но с каким обьектом она работает опять же проверить
и да, чем делать try/catch лучше написать обработчик типа
return promise
.then(data => [null, data])
.catch(err => [err])
;
и вообще забить на такое слово как reject.
ну можно как бы пользоваться но кода больше.
лучше возвращать resolve() с бросаемой ошибкой, на мой взгляд удобнее

denis
25.05.2018
13:05:35
Коллеги, всем привет!
Кто нибудь с работал с ClickHouse

Grigoriy
25.05.2018
13:17:02
у тебя действительно петабайты данных?
или ты делаешь что "скоро будут петабайты года через три и лучше сделать сейчас а заодно научиться"

Google

Grigoriy
25.05.2018
13:17:45
под петабайтами я понимаю очереди которые записываются в базу сразу пачкой размером в несколько гигов
до 50-100 миллионов записей обычная SQL база тебе за глаза.
да что далеко ходить - у Алекса Ярыгина логи пишутся одновременно в SQL и в Elastic (у которого индексы толстые что та свинья) - и у него гигабайты логов и летает поиск по этим логам что твой самолет.
я хз, если ты не решил сделать свой поисковик зачем тебе кликхауз

denis
25.05.2018
13:19:33
У нас тизерная рекламная сесть
и у нас 100кк событий в сутки
Нужна более качественная аналитика данных

Grigoriy
25.05.2018
13:20:14
ага я отваливаю, понял =) простите дедушка, вы как сделаете скажите мне, я тоже очень бы хотел посмотреть

denis
25.05.2018
13:20:34
конкуренты во всю пользуются =)
СМИ2 например
даже драйвера и граф интерфейс выпустили =)
С эластиком года 3 назад завезал

Andrey
25.05.2018
13:23:56
https://t.me/clickhouse_ru
тут вот точно есть кто работает + его разработчики там есть

Varyen
25.05.2018
13:27:04
кликхаус очень крут
просто магия из коробки

denis
25.05.2018
13:27:21
Та, есть пара либ под ноду но чет не пойму как работать
толи в реалтайме писать туда
толи агрегировать сначала в редис, а потом другим сервисом разгребать пачку записей сразу

Varyen
25.05.2018
13:27:49
я поверх какой-то существующей немного дописал, там в целом то все просто
а чего не хватает то?

denis
25.05.2018
13:28:13
У меня косяк с имнсертами

Google

Varyen
25.05.2018
13:28:20
они рекомендуют пачками кидать инзерты, можно самому сначала накапливать
а потом при превышении уже делать запрос

Andrey
25.05.2018
13:28:29
сказали лучше батчами

Varyen
25.05.2018
13:28:36
я так и делаю собственно
либо раз в 5 секунд, либо при превышении какого-то количества запросов

denis
25.05.2018
13:29:53
redis.lrange(collectionName, 0, -1, (err, messages) => {
let clickhouseStream = ch.query ('INSERT INTO clickscloud.events', {inputFormat: 'TSV'}, callback);
_.each(messages, (m, key, cb)=> {
try {
let v = JSON.parse(m);
if (v[6] !== null && v[16] !== 'block') {
clickhouseStream.write(v);
} else {
console.log(m);
}
}catch (e) {
console.log(m);
}
});
clickhouseStream.end();
});
Вот такая конструкция у меня не завелась
Точнее так
С делал TSV файл
и пробовал грузить его
но, он почему то брал только первую запись
ее вставлял
а все остальное игнорировал

Varyen
25.05.2018
13:31:36
сейчас посмотрю как я делал

denis
25.05.2018
13:32:50
Буду благодарен

Varyen
25.05.2018
13:32:55
INSERT INTO ${to} FORMAT JSONEachRow и дальше ряды через \n

denis
25.05.2018
13:33:27
А ряды json строкой ?

Varyen
25.05.2018
13:33:30
ага

denis
25.05.2018
13:33:42
А либу какюу юзал ?

Google

Varyen
25.05.2018
13:33:46
вряд ли это самый оптимальный вариант, но работает
@apla/clickhouse

denis
25.05.2018
13:38:10
Ага спасибо!

Varyen
25.05.2018
13:39:50
объемы уже вторичны

denis
25.05.2018
14:05:29
Главное что клик хаус позволяет агрегации делать почти в реальном времени

Grigoriy
25.05.2018
14:19:20

Varyen
25.05.2018
14:20:54
лол што
причем тут агрегация вообще?

Grigoriy
25.05.2018
14:21:53

Varyen
25.05.2018
14:22:01
походу оно и видно

Grigoriy
25.05.2018
14:23:59
может ты испытаешь недостаток превосходства над кем-то и хочешь посмеяться вместо того чтобы тратить время на бесполезных людей? слишком крутой чтобы опускаться до того кем сам был?

Varyen
25.05.2018
14:25:33
бро, перечитай сам свои первые сообщения по поводу кликхауса тут. Хочешь чтобы тебе нормально отвечали - веди себя прилично сам в первую очередь.

Grigoriy
25.05.2018
14:26:03
теперь чувак который говорит "оно и видно" будет учить меня приличию. ахуенный ты перец

Varyen
25.05.2018
14:26:36
ну я хотя бы знаю что такое агрегация данных и не путаю с джойнами

denis
25.05.2018
14:27:45
Не заводится =)

Grigoriy
25.05.2018
14:27:46
и что блин с того что ты знаешь? ты можешь побеждать? можешь. и собственно каким образом это делает тебя образцом приличия?
приличие это в том чтобы зная что можешь победить заткнуть этот животный инстинкт подальше и сглатывая сказать "не, послушай, под агрегацией здесь понимают вот это, на мой взгляд"
можно побеждать, а можно быть полезным другим. это противоположная сторона.
если побеждаешь - ты не "приличный", ты победитель.
если ты изучил и хочешь помочь более слабому падавану - тогда ты приличный и соответственно герой.
а то что кое кто привык героем победителя называть это не только он виноват

Varyen
25.05.2018
14:28:16
пиши в личку лучше, я не отвечу (в личке тоже не отвечу)

Grigoriy
25.05.2018
14:28:41