$userEvent = new UserEvent();
    @unlink($fileName);
    echo "Write data to : " . $fileName . "\n\n";
    for ($z = 0; $z < $count_rows; $z++) {
        $row = ['event_date' => $userEvent->getDate(), 'event_time' => $userEvent->getTime(), 'event_type' => $userEvent->getType(), 'site_id' => $userEvent->getSiteId(), 'article_id' => $userEvent->getArticleId(), 'ip' => $userEvent->getIp(), 'city' => $userEvent->getCity(), 'user_uuid' => $userEvent->getUserUuid(), 'referer' => $userEvent->getReferer(), 'utm' => $userEvent->getUtm()];
        file_put_contents($fileName, \ClickHouseDB\FormatLine::TSV($row) . "\n", FILE_APPEND);
        if ($z % 100 == 0) {
            echo "{$z}\r";
        }
    }
    // Включаем сжатие
    $client->setTimeout(300);
    $client->database('articles');
    $client->enableHttpCompression(true);
    echo "\n> insertBatchFiles....\n";
    $result_insert = $client->insertBatchTSVFiles('events', [$fileName], ['event_date', 'event_time', 'event_type', 'site_id', 'article_id', 'ip', 'city', 'user_uuid', 'referer', 'utm']);
    echo "insert done\n";
    echo $fileName . " : " . $result_insert[$fileName]->totalTimeRequest() . "\n";
}
$client->database('articles');
// Допустим нам нужно посчитать сколько уникальных пользователей просмотрело за сутки
print_r($client->select('
        SELECT
            event_date,
            uniqCombined(user_uuid) as count_users
        FROM
            events
        WHERE
            site_id=1
        GROUP BY
            event_date
Example #2
0
$db->insertBatchFiles('testRFCCSVWrite', [$fileName], ['event_time', 'strs', 'flos', 'ints', 'arr1', 'arrs']);
$st = $db->select('SELECT * FROM testRFCCSVWrite');
print_r($st->rows());
//
echo "\n<<<<< TAB >>>>\n";
$fileName = '/tmp/testRFCCSVWrite.TAB';
@unlink($fileName);
$db->write("DROP TABLE IF EXISTS testTABWrite");
$db->write('CREATE TABLE testTABWrite (
           event_date Date DEFAULT toDate(event_time),
           event_time DateTime,
           strs String,
           flos Float32,
           ints Int32,
           arr1 Array(UInt8),
           arrs Array(String)
        ) ENGINE = Log(event_date, (event_time, keyz,keyb), 8192)');
$data = [['event_time' => date('Y-m-d H:i:s'), 'strs' => "STING\t\tSD!\"\nFCD\tSAD\t\nDSF", 'flos' => -2.3, 'ints' => 123, 'arr1' => [1, 2, 3], 'arrs' => ["A", "B"]], ['event_time' => date('Y-m-d H:i:s'), 'strs' => 'SOME\'STRING', 'flos' => 0, 'ints' => 12123, 'arr1' => [1, 2, 3], 'arrs' => ["A", "B"]], ['event_time' => date('Y-m-d H:i:s'), 'strs' => 'SOME\'"TR\\tING', 'flos' => 0, 'ints' => 0, 'arr1' => [1, 2, 3], 'arrs' => ["A", "B"]], ['event_time' => date('Y-m-d H:i:s'), 'strs' => "SOMET\nRI\n\"N\"G\\XX_ABCDEFG", 'flos' => 0, 'ints' => 1, 'arr1' => [1, 2, 3], 'arrs' => ["A", "B\nD\ns\tC"]], ['event_time' => date('Y-m-d H:i:s'), 'strs' => "ID_ARRAY", 'flos' => -2.3, 'ints' => -12123, 'arr1' => [1, 2, 3], 'arrs' => ["A", "B\nD\nC\n\t\n\tTABARRAYS"]]];
foreach ($data as $row) {
    file_put_contents($fileName, \ClickHouseDB\FormatLine::TSV($row) . "\n", FILE_APPEND);
}
//
echo "FILE:\n\n";
echo file_get_contents($fileName) . "\n\n----\n";
//
$db->insertBatchTSVFiles('testTABWrite', [$fileName], ['event_time', 'strs', 'flos', 'ints', 'arr1', 'arrs']);
$st = $db->select('SELECT * FROM testTABWrite');
print_r($st->rows());
$st = $db->select('SELECT round(sum(flos),5),sum(ints) FROM testTABWrite');
print_r($st->rows());
//