Building a Server-Side Event Tracking Application
The percentage of web users browsing with built-in browser tracking protection enabled is rapidly growing, and as browsers begin to ship with these features enable by default, like Apple’s ITP, the client-side attribution techniques that digital advertisers have relied on for years will become progressively less effective.
I do some work with a software company who’s primary audience is younger tech-savvy users. Based on what we’ve tracked over the past 6 months, over 30% of their audience has tracking protection enabled, and an even larger percentage are on mobile devices. In a scenario like this, server-side tracking is the only accurate and effective approach to connect paid ad hits to web conversions attribution, but the options available aren’t so great.
Server-side Event Tracking Software
- Segment can do this well, but it’s usually very expensive for companies with a decent amount of volume and there are certain circumstances where you’ll end up coding your own cloud functions to get what you need
- Google Tag Manager server-side tagging provides a close to free alternative, but it’s difficult to set up, has a lot of limitations and I have a feeling it will be detected and blocked by tracking protection in the near future
- mParticle is a good alternative to Segment, but it has the same drawbacks
- ClickHouse is a great option for high volume data, but it only handles the collection of events.
Options for Server-side Event Tracking
After reviewing the lackluster options, we decided to build our own system using the Laravel web application framework. This has many distinct advantages:
- No limitations to what we can do: we can support every advertiser that can receive server side events
- Stay under the radar with a less detectable tracking patterns
- Ability to rapidly adapt with the changing landscape
Custom Server-side Event Tracking Web Application
!Custom server-side event tracking API built with Laravel
While we did build our own web application to do this, we didn’t do it from scratch. Laravel provides many built-in capabilities that were ideal for us to work with, including an API ORM and API routing.
From a business perspective, the web application is handling the following for us:
1. Marketing websites track pageviews and events by making an API request to a subdomain
2. When the API’s receive an event or pageview it makes outgoing API requests to advertising platforms like TikTok, Facebook and Google Ads
To meet the strict rules of various tracking protection mechanisms, we’re using a server-side 1st-party cookie to track the user session. This cookie stores the click ID and other details about the first visit, and creates an anonymous identifier that persists in that user’s browser.
Cross-device Attribution Tracking
On the marketing website, a web based application process collects and verifies their phone number. The phone number is verified using an OTP text message, where they’re provided with a unique code they have to enter to confirm it is in fact their phone. Once that phone number is verified, a unique user_id is provided to that user, and we can associate that device with the individual anonymously.
> This approach allows us to handle cross device attribution seamlessly
If that person starts the application process on their laptop but doesn’t finish, they can continue later on their phone by re-verifying their phone again. This allows us to accurately identify the same person from their laptop and their phone.
Technical Details
To handle all this fancy stuff for a reasonably large volume of users, we’ve used the following technical approach. Under the hood it’s not all that complex, though we do go beyond what’s mentioned here to provide additional models for reporting and audience generation. These are the exact types of things that are difficult to do with off the shelf systems.
This system is effectively a micro, DIY OLAP (online analytical processing) application. We use it to collect and store data from multiple data sources, including websites, applications and internal systems.
Incoming API Requests from Marketing Website(s)
!Event model table in MySQL database table
How it works
1. API routes receive incoming POST requests with JSON payloads.
2. Payloads are validated with custom rules and return appropriate HTTP responses.
3. Valid incoming requests create a new Event model, storing the request, response, event name and user details into a MySQL database table with JSON type columns.
Outgoing API Requests to Advertising Platforms
!Track model table in MySQL database table
How it works
1. A job is pushed into a Redis powered queued for background processing by the server. This job contains methods for each advertising platform that we’ll make an API request to.
2. The server processes jobs from the queue, creating a new Track model record for each outgoing API request made. Each record contains an incoming_id column that creates a many-to-one relationship with the incoming event that triggered it.
Cloud Hosting

We’re hosting the application with Vapor using AWS resources under the hood. This allows us to comply with strict security protocols by keeping the application in a private cloud. The URL used is a subdomain of the main corporate website where paid advertising is driven to, allowing us to use a 1st-party cookie on both the API server and the marketing website receiving paid ad hits.
Benefits
The things that make this worth the effort.
Performance
!Fast changing analytical landscape, like a speeding car
This custom application is actively running as we speak, and based on what we’ve seen so far, it’s an absolute beast. It has met all of our needs for tracking server-side conversion events and pageviews reliably, and has also been configured to handle custom audience generation and reporting too.
The redis queue handles spikes in volume really well, processing items one by one no matter how many are received. The cloud host has been configured with auto-scaling, and it will scale up automatically to handle traffic bursts, and scale down when volumes are low.
Smart Errors & Replays
We’ve configured CloudWatch logging to notify us when exceptions or errors do occur, which allows us to react quickly to solve them.
> Errors are bound to happen, especially in a system that connects to outside services which can change without notice.
Most of these errors will occur with the outgoing API requests, as those are the aspects that will change most frequently without us knowing (thanks Facebook). By using the queue we’re able to record these errors and all associated data that was sent in to the job that triggered it. When we do fix the issue we can replay those events that previously failed.
Most if not all server-side side event tracking API’s typically receive an event datetime that represents when it occurred. We use this pattern to our advantage, and when the events are replayed the datetime of the error is used to retroactively backfill the requests.
The ability to replay outgoing requests that previously error’d out provides us with a way to track every single valid event we’ve received, no matter what happens.
Fast Adaptation to Changing Landscape
Limitations and server-side tracking APIs are changing all the time, and this system gives us the ability to quickly change with them. We can move much faster than if we were dependent on a third-party software provider.
To keep up with these rapid changes I highly recommend Cookie Status. It’s a great resource for understanding the specific technical limitations imposed by various tracking protection mechanisms implemented by the major browsers and browser engines.
Authors Note
If you’re looking for a dependable analytics consultant and/or web app developer to build something similar for you, please let me know I’m available for hire. I have a lot of real-world experience building systems like this, which improve the ROI of digital advertising spend by reducing customer acquisition costs.
I commend Orkes for funding a Jepsen report knowing that it could be published this harshly. I question the wisdom of doing so, but it at least speaks to the team's integrity. Building databases is very hard; I know this from personal experience.
Disclosure: I'm a software engineer on the core team at a different database company, but we focus on time-series use cases and do not compete in the ACID/OLTP space ParticleDB is targeting.
I decided to dig into these claims a bit.
> Its also faster than Redis for KV
ParticleDB's own benchmarks[0] come with several caveats. Much of the win over Redis seems to come from comparing ParticleDB on 48 cores to Redis's single execution thread, from what I can tell.
- On a single client in async mode, ParticleDB loses on writes at 0.86-0.90x and ties on GET.
- SET at 512 clients reaches 4.81x Redis, but that's about 18.7k ops/s per allocated core vs Redis's 186k on one thread. For comparison, GET at 512 clients works out to about 33.8k ops/s per allocated core vs Redis's 228k.
- Tail latency on SET is much worse, e.g. p99 of 49ms vs 5.3ms for async SET at 512 clients and 306ms vs 41ms for durable mode with pipelining.
- Each test was 8 seconds long on 100k keys, but the Jepsen report saw throughput decline linearly over an hour, even on small datasets.
> also numbers show this should be top on clickbench
Would this claim survive after validating query results?
Regardless, it's moot, because it doesn't survive on its face either. On hot runs, by my calculations from the numbers in the Clickbench PR[1], ParticleDB scores about 1.5x better than ClickHouse, however Umbra still scores about 1.5x better than ParticleDB.
The fact that `GROUP BY URL` (Q33/Q34) beats `GROUP BY UserID` (Q15) by 4x on a `c6a` is also puzzling to me. Only a handful of 100+ ClickBench results that I checked do this, and ParticleDB's ratio is the most extreme. It also speeds up only 2.2x when going from 16 to 192 vCPUs, while Umbra, ClickHouse, and ElosDB manage 7-10x. This makes me wonder whether the ParticleDB submission may inadvertently be using some precomputation/intermediate caching, despite final result caching seemingly having been disabled.
[0]: particledb.ai
[1]: ClickBench#2952
Turso has been working on something like this for almost 2 years now tursodatabase/turso
Last I checked it wasn't going too well, and it does not seem fixed:
ClickBench#336
ClickBench#1009
"No matter how hard I try, it does not work :("
6 likes
I work on pgrust. We shouldn't have submitted the preview when we did: it was still in active development, and its SQL coverage was far too narrow, though there was nothing in it giving it an unfair performance advantage
For the other two claims in the removal PR, we wrote scripts you can use to verify the behavior of the original 0.4-preview binary:
- Per-query kernels did not serve the benchmark queries[0]
- The preview's fast repeat LIKE queries came from a dictionary filter cache, not a cached query result[1]
Our open-sourced 0.4-beta has now been merged and is back on ClickBench[2][3]
Across all queries and instance sizes on ClickBench, 0.4-beta is ~7% faster overall than the 0.4-preview binary that was removed. If 0.4-preview's numbers had come from hardcoded kernels or faked results, the open-source general engine wouldn't be beating it
[0] pgrust.com
[1] pgrust.com
[2] benchmark.clickhouse.com
[3] ClickBench#2751
Christ on a cream cracker, clickhouse labeled the previous ParticleDB submissions as jokes github.com/ClickHouse/ClickBench/pulls
How we improved bloom filters in parquet-rs [1], now adopted by ClickHouse [2]: pydantic.dev
[1]: arrow-rs#9628
[2]: ClickHouse#119230
5 likes · 1 repost · 102 views
Seventeen Seconds to Parse One Name: A Security Scan Across Eleven PHP Projects
This is a 16 KB name:
$row = 'Smith, ' . str_repeat('V ', 8188);
(new \Iliaal\NameParser\Parser())->parse($row);
On nameparser 1.5.0, the last version before the fix, that call takes 17.4 seconds of CPU on my i9-13950HX. On 1.7.0 it takes 0.064 seconds. Each V is a candidate roman-numeral suffix, and the old suffix scan walked back over every earlier token for each one, so the cost grew with the square of the input. Nothing about it is exotic. It is a plausible shape for a junk row in a CSV import, and it pins a PHP worker for as long as the row keeps coming.
I didn't find it. A security scan did, and the same scan ran across all ten of my PHP extensions as well. In the first three weeks of October each project got a full pass: one coordinating session, a set of subagents reading code and writing proof-of-concept exploits, and a separate verifier that re-ran every finding before it counted, on its own ASan and release builds for the C code. Everything below ships in releases from the last few weeks.
Two other things landed in the same window. PHP's October security releases changed what memory_limit does, which forced code changes in three extensions and a same-day round of re-releases in five more. And DuckDB 2.0 went GA; pdo_duckdb bundles it as of today.
What the scans found, and what is fixed
Every project in the table has a release that carries its fixes. The counts are findings confirmed by the verifier, fixed, and released; severities are the verifier's, not the scanner's first guess.
| Project | Fixed in | Confirmed and fixed |
|---|---|---|
| phpser | 0.7.1 | 19: 1 high, 5 medium, 13 low |
| mdparser | 0.8.0 | 12: 1 high, 5 medium, 5 low, 1 informational |
| fastchart | 1.8.0 | 15 reproduced, highest medium, including vendored plutovg and plutosvg; two UBSan sites in vendored code only partly addressed |
| php_clickhouse | 0.13.0 | 1 high, 1 medium, plus low-severity binding fixes and 7 server-triggered crashes in clickhouse-cpp |
| pdo_duckdb | 0.8.0 | 6: 1 high, 1 medium, 1 low-medium, 2 low, 1 informational |
| fastjson | 0.10.0 | 4: 1 medium, 3 low, plus 1 documentation correction |
| php_excel | 2.9.0 | 5: 3 low, 2 informational |
| statgrab | 2.3.0 | 4: 2 medium, 2 low, plus a build bug |
| fast_uuid | 0.8.1 | 5: 4 low, 1 by-design behaviour changed anyway |
| phonetic | 0.4.4 | 3: 1 medium, 2 low |
| nameparser | 1.6.0 | 5: 1 medium, 1 low, 3 informational |
A few findings in upstream libraries are reported privately to their maintainers and aren't described here until fixes ship.
The coordinating model was Mythos 5.1, but most of the work ran on other models: on fastjson, 695 of the 702 assistant messages came from Opus 5.5 subagents doing the reading, fuzzing, and PoC writing. The phpser scan doubled as an A/B/C test of my own tooling against a bare prompt, which I wrote up on X at the time. So the table measures the process more than any one model.
fast_uuid and phonetic came back with zero memory-safety bugs, and php_excel's wrapper with nothing above low severity.
Bugs that needed no attacker
The worst php_clickhouse finding in practice wasn't the high-severity one. It was B-4, which corrupted data on ordinary queries. Decimal and DateTime64 decoding cached each column's scale in a memo keyed on the raw address of the column's type object. clickhouse-cpp allocates a fresh type object per column per block and frees the block after each callback, so the next block's first column could land at the same address and inherit the previous column's scale. Select a scale-2 column next to a scale-6 one with max_block_size=100, and a stored 12.34 came back as 0.001234, with no error. With default settings the verifier still saw 1 wrong cell in 70,000 rows.
The test suite never caught it because ASan builds hide it: the sanitizer's quarantine stops freed memory from being reused, so the address never repeats. It took a release build and a real server. 0.13.0 keys the memo correctly.
0.13.0 also fixes a behaviour you should check for before upgrading. A whole-number insert into a Decimal column, 7 into Decimal(9,2), now stores 7.00 as the server does; 0.12 stored 0.07. Code that compensated by passing pre-scaled integers (700 meaning 7.00) will now store 700.00 without complaint.
fast_uuid's main finding has the same character. uuid1() and uuid6() with a fixed node and clock sequence kept no last-tick state, so uuid1(1, 7) called 500,000 times produced 61,723 duplicates. The default arguments were fine. 0.8.1 fixes it.
Bugs a server, a file, or a document could trigger
php_clickhouse's high-severity finding was a heap overflow write. With compression enabled, a malicious or compromised server could send a compressed frame whose declared size was smaller than the 9-byte frame header, and the client wrote past its buffer with bytes the server chose. clickhouse-cpp had already fixed it on master in PR #566, but no clickhouse-cpp release contains the fix yet, and php_clickhouse's prebuilt binaries ship the library. 0.13.0 carries the patch. The same release rejects seven more server-triggered crash shapes, from FixedString(0) columns to Array offsets that run backwards, and stops a packet of a few dozen bytes from committing gigabytes of memory outside memory_limit. I sent the fixes upstream as 15 pull requests; three have merged so far and twelve are open.
fastchart's two medium findings were both resource bombs. A 44 KB SVG passed to svgTo*() reached 2,121,264 KiB of resident memory through data URIs and <use> references that slipped past the input gate, all of it outside memory_limit; a 30,000-deep <use> chain crashed the process. A 1 MB CgBI PNG with decoy dimensions decoded into a 16000 by 16000 buffer. 1.8.0 runs the gate on the parsed tree, bounds <use> depth and expansion, and caps decoded images at 4,096 pixels a side. Some heavy but legitimate SVG that used to render slowly now throws a ValueError instead, so test your largest inputs.
mdparser's high-severity finding was quadratic parsing: blank lines inside deeply nested lists took 1.7 seconds at 200 KB and 55 seconds at 1 MB. Seven of mdparser's thirteen findings had their root cause in md4c rather than in my code, and the fixes went upstream; md4c merged five of my pull requests for them on October 13. One remaining low-severity signed overflow is still waiting in md4c#374. 0.8.0 also changes generated heading IDs to start with user-content-, which closes a DOM-clobbering finding and breaks existing links to heading fragments when headingAnchors is on.
The other high and medium findings
pdo_duckdb's high finding was a use-after-free: an appender left open inside a reference cycle could outlive its PDO handle when gc_collect_cycles() or request shutdown freed the handle first. Two of the medium-range findings were the same shape. A memory_limit bailout at the wrong moment during column setup left uninitialised type pointers that were destroyed later; the PoC got the sanitizer to report a destructor running on 0x4141414141414141. 0.8.0 fixes all six.
phpser's high finding was that a nested SPL unserialize() ignored allowed_classes. Its legacy handler path ran outside the decoder's context, so a class allowlist set on the outer call never reached the inner one. 0.7.1 fixes it along with eighteen others, most of them bounds on work an untrusted payload could demand.
nameparser's quadratic case, from the top of this post, is fixed in 1.6.0. Its release notes say plainly that earlier notes describing hostile-input parsing as linear "did not hold for these shapes". phonetic's medium finding was a 14-byte input, bmpm("de akeaxhaeasz"), that caused an uncatchable fatal error. 0.4.4 turns budget overruns into a catchable ValueError and caps BMPM output at 256 times the input size, after a 1,560-byte input had produced 3.9 MB.
memory_limit stopped stopping things
PHP 8.2.35, 8.3.36, 8.4.27, and 8.5.12 shipped on October 21 with the fix for CVE-2026-109618, rated critical. Part of that fix changes what happens when an allocation crosses memory_limit. The engine used to bail out on the spot with a longjmp. Now it records the error, lets the allocation succeed, and raises the fatal at the next safe point in the VM.
For PHP code that's invisible. For an extension it isn't. A C loop that decodes a payload or builds rows never reaches a VM safe point, so it keeps allocating past memory_limit until it hits a hard limit, by default twice memory_limit below 1 GiB. At the hard limit the engine calls _exit(): no shutdown functions, no destructors, no session write, and php-fpm loses the worker instead of failing one request.
So every loop whose length comes from input has to notice the pending error and stop on its own. This is how phpser does it:
/* PHP 8.2.35, 8.3.36, 8.4.27 and 8.5.12 queue a memory_limit error instead of
* bailing out; the allocation still succeeds until a hard limit (2x the soft
* limit below 1G) that _exit()s the process. Loops that keep allocating must
* stop on their own once the error is pending. */
#ifdef ZEND_HAS_OOM
# define PHPSER_HAS_OOM() ZEND_HAS_OOM()
#else
# define PHPSER_HAS_OOM() 0
#endif
A loop check cannot help when a single allocation is sized from a count the payload declares. Those go through the new fallible allocators instead (zend_hash_real_finit(..., true), safe_femalloc, fecalloc), which queue the error and return NULL rather than running into the hard limit. phpser 0.10.0 uses both. mdparser 0.8.1 and pdo_duckdb 0.9.0 do the same for their input-sized loops and presizes.
The re-release day
There is a catch. The October headers route smart_str growth through a new engine function, smart_str_ferealloc(), from inline header code. An extension compiled against 8.4.27 headers imports that symbol even if it never mentions it, and 8.4.26 doesn't export it. My release workflows built prebuilt binaries against the newest patch of each PHP minor, which had always been the safe choice.
On October 26 that meant mdparser 0.8.1, phpser 0.10.0, fastjson 0.10.1, php_clickhouse 0.13.1, and phonetic 0.4.5 all shipped Linux and macOS binaries that died with undefined symbol: smart_str_ferealloc on every PHP 8.4 before 8.4.27 and every 8.5 before 8.5.12. Source builds were fine, because they compile against the PHP they load into. All five were re-released the same day as mdparser 0.8.2, phpser 0.10.1, fastjson 0.10.2, php_clickhouse 0.13.2, and phonetic 0.4.6, and fastchart 1.8.1 picked up the same change before it could break. Their prebuilts now compile against the oldest patch of each minor (8.4.1, since 8.4.0 was never released, and 8.5.0), and each binary has to load on both the oldest and the newest patch before anything uploads.
That fix has a cost, and the phpser changelog states it: a binary built against 8.4.1 headers doesn't have the memory_limit stop. To get it, you build from source on a patched PHP.
Refusing vulnerable PHP releases
The longer-term answer is the opposite trade. pdo_duckdb 0.9.0 makes it today: its prebuilt binaries are built against the patched headers and require PHP 8.2.35, 8.3.36, 8.4.27, or 8.5.12 or newer. Load one on 8.4.26 and the process stops at the first call:
php: symbol lookup error: /ext/pdo_duckdb.so: undefined symbol: smart_str_ferealloc
That message is honest but unfriendly, and it arrives at runtime rather than at startup. The next releases of pdo_duckdb, phpser, and mdparser fix that with a startup check. On PHP 8.3 and newer, the module compares the running patch with the one it was compiled against and refuses to start on an older one, naming both versions. This is mdparser's:
if (php_version_id() < PHP_VERSION_ID) {
zend_error(E_CORE_WARNING,
"mdparser was built for PHP %s and cannot run on PHP %s; "
"install a build for this PHP version or build from source",
PHP_VERSION, php_version());
return FAILURE;
}
With that check in place, pdo_duckdb keeps the binaries it already builds against the patched headers, and phpser and mdparser can move theirs back to the patched headers and regain the memory_limit stop. A server still on 8.4.26 gets a clear startup warning instead of a crash on the first request, and with a critical CVE fixed in 8.4.27 it should move anyway.
pdo_duckdb 0.9.0: DuckDB 2.0
DuckDB 2.0.0 went GA on October 21, and pdo_duckdb 0.9.0, out today, bundles it in every prebuilt binary. 0.8.0 had already built against the 2.0 previews. Source builds still work against DuckDB 1.5.3 and newer; configure detects 2.0 from duckdb_v2.h, because the 2.0 headers still report C API version 1.5.6, and it refuses to build when 2.0 headers meet an older libduckdb.
The upgrade is not transparent, and the README has a full section on it. The one most likely to bite is the file format. DuckDB 2.0 writes new files at storage version 69, and DuckDB 1.5 reads only 64 to 68. If a 1.5 process has to read the file too, ask for the older format when you open it:
$db = new PDO('duckdb:/data/shared.duckdb;storage_compatibility_version=v1.5.6');
On the 0.9.0 binary, a file opened that way reports v1.5.0+ in duckdb_databases(), and a default one reports v2.0.0+. Existing 1.5 files keep their format after 2.0 writes to them. The rest is DuckDB's own behaviour: a failed statement now invalidates the whole transaction, integer division by zero throws, single-arrow lambdas are rejected, and the new PEG parser is the default. That last one has a sharp edge for parameter binding: $1_0 means parameter 10 under PEG and parameter 1 under the legacy parser. Each change has a setting that restores 1.5 behaviour.
0.9.0 also adds PDO::DUCKDB_ATTR_NATIVE_STRUCTURES, an opt-in that fetches LIST, ARRAY, STRUCT, TUPLE, MAP, UNION, JSON, and VARIANT values as lossless PHP structures instead of canonical strings, with exact numerics, binary keys, and SQL NULL kept distinct from VARIANT null. VARIANT works top-level and nested, and the appender accepts PHP arrays and objects for it.
One fix in 0.9.0 matters even if you never touch 2.0: two PDO connections to the same database file could lose writes and see stale reads. Equivalent paths now share one DuckDB instance while transactions stay connection-local.
Performance, with the hardware attached
Most of the speed work came before the scans. Apart from the nameparser row, which I re-ran for this post, these are the numbers from each project's changelog with the conditions it states.
| Project | Change | Measured on |
|---|---|---|
| nameparser 1.6.0 | 16 KB hostile row: 17.4 s to 0.064 s | i9-13950HX, PHP 8.4.27 (my rerun of 1.5.0 vs 1.7.0) |
| phpser 0.6.0 | range(0, 9999) encodes to 7 bytes; encode 57% faster, decode 66% faster | aarch64 |
| phpser 0.7.0 | Signed decode 53 to 85% faster; 1,000-row rowset decodes in 429 KB instead of 645 KB | aarch64 |
| fastjson 0.9.0 | fastjson_validate() costs 0.47 to 0.90x a full parse, down from 1.1 to 1.9x | Neoverse-N1 |
| fastjson 0.9.0 to 0.10.0 | Key-heavy decode peak memory about 15% lower; file decode peak 9 to 33% lower | Neoverse-N1 |
| fast_uuid 0.8.0 | uuid_v4() 76 to 42 ns; uuid_v4_bin_batch(100) 61 to 27 ns per UUID; uuid_v7_bin_batch() 25.9 to 16.6 ns | Neoverse-N1 |
| mdparser 0.6.2 | toAst() 5 to 9% faster; retained AST memory 47% lower on softbreak-dense input; code-heavy toXml() output 49% smaller in memory | aarch64, PHP 8.4.25 |
| php_clickhouse 0.12.0 | Temporal, string, and IP inserts about 19% faster; IPv4 selects about 12% | 200,000-row probes |
The phpser integer-run encoding is the one I'd point at. A run with a constant step is stored as a start, a step, and a count, so range(0, 9999) encodes to 7 bytes and range(0, 999999) to 8. Native serialize() needs 137,790 bytes for the first one.
fast_uuid's speedup comes from refilling its random buffer with a userspace AES-256-CTR generator with fast key erasure, instead of a getrandom() call per 8 KiB, on CPUs with AES instructions. It has one caveat, and the changelog states it: clones of one VM snapshot can repeat up to 64 KiB of output per thread.
Breaking changes worth reading before you upgrade
Most of these releases are drop-in. These are not:
- php_clickhouse 0.13.0: whole-number Decimal inserts scale like the server's (above).
- mdparser 0.8.0: heading IDs carry a user-content- prefix.
- phpser 0.10.0: Closures and other unserializable objects throw instead of quietly encoding NULL. Check what you put in $_SESSION before upgrading. New wire tags since 0.7.0 mean readers must upgrade before writers.
- php_excel 2.9.0 and 2.9.1: dates use PHP's timezone rather than the OS one, and text is UTF-8 regardless of the process locale. Apps that relied on the locale to pass non-UTF-8 bytes through will see different output. 2.7.0 also rejects a font from a different ExcelBook in addText().
- fastchart 1.8.0: heavy SVG that used to render slowly may now throw ValueError.
- phonetic 0.4.4: oversized BMPM and Daitch-Mokotoff work throws a catchable ValueError rather than ending the request.
- statgrab 2.2.2: Statgrab::ERROR_UNSUPPORTED is 44, matching libstatgrab; it was 41.
On the feature side, phpser 0.8.0 and 0.9.0 added signed sessions (phpser.session_key, HMAC-SHA256), an APCu serializer (apc.serializer=phpser), keyed payloads, and an exported C API. nameparser 1.4.0 understands joint salutations, so Mr. and Mrs. Brad Smith keeps Brad as the first name, with new isJoint(), getSalutations(), and getPartner(), and 1.4.1 raised first-and-last accuracy on 30,000 NPPES provider rows from 95.94% to 97.18%. statgrab 2.3.1 fixes a heap overflow in the bundled libstatgrab's Linux command-line handling that the scan didn't cover.
What a scan is worth
None of these projects were neglected before October. Each had a test suite and documentation that said where its limits were. The scans still found an allowlist that didn't reach a nested call, a Decimal that came back ten thousand times too small, and a 16 KB name that took 17 seconds. Two of the most consequential findings sat in code I had already called linear or already tested under ASan, and for the Decimal bug the ASan testing is exactly what hid it.
The fixes are released and listed above. Upgrade pdo_duckdb if you are moving to DuckDB 2.0, php_clickhouse if you talk to a server you don't control, and PHP itself to 8.4.27 or 8.5.12 whatever else you do.
Remove pgrust: the entry is cheating (per-query kernels and result caching)
View Article | Discussion + AI Summary
Summary of HN discussion 🧵👇
2 likes
ClickHouse: Real-time analytics without waiting
ClickHouse® is a real-time analytics database management system
ClickHouse is an open‑source column‑oriented DBMS that provides real‑time analytical reporting. It’s ideal for developers needing fast SQL queries on large datasets, with options to install locally or use ClickHouse Cloud. Community resources like release calls and meetups keep you in the loop.
- Install on Linux, macOS, FreeBSD or use ClickHouse Cloud
- Official website, docs, tutorials, and YouTube channel for learning
- Regular release calls and global meetups for community support
Repo: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51k stars | C++ | Apache-2.0
Follow for a new open source repo every day.
#opensource #cpp #sql #database #analytics
#Shorts
[ar] ClickHouse: تحليلات فورية دون انتظار
ClickHouse® هو نظام إدارة قواعد بيانات لتحليلات البيانات في الوقت الفعلي.
ClickHouse هو نظام إدارة قواعد بيانات مفتوح المصدر، يعتمد على الأعمدة، ويوفر تقارير تحليلية فورية. يُعدّ مثاليًا للمطورين الذين يحتاجون إلى استعلامات SQL سريعة على مجموعات بيانات ضخمة، مع خيارات للتثبيت محليًا أو استخدام ClickHouse Cloud. تُبقيك موارد المجتمع، مثل اجتماعات الإصدارات واللقاءات، على اطلاع دائم.
- التثبيت على Linux أو macOS أو FreeBSD أو استخدام ClickHouse Cloud
- الموقع الرسمي، والوثائق، والدروس التعليمية، وقناة YouTube للتعلم
- اجتماعات إصدارات دورية ولقاءات عالمية لدعم المجتمع
المستودع: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51 ألف نجمة | C++ | Apache-2.0
تابعنا للحصول على مستودع جديد مفتوح المصدر يوميًا.
#opensource #cpp #sql #database #analytics
#Shorts
[bn] ClickHouse: কোনো অপেক্ষা ছাড়াই রিয়েল-টাইম অ্যানালিটিক্স
ক্লিকহাউস® একটি রিয়েল-টাইম অ্যানালিটিক্স ডাটাবেস ম্যানেজমেন্ট সিস্টেম।
ক্লিকহাউস একটি ওপেন-সোর্স কলাম-ভিত্তিক ডিবিএমএস যা রিয়েল-টাইম অ্যানালিটিক্যাল রিপোর্টিং প্রদান করে। এটি সেইসব ডেভেলপারদের জন্য আদর্শ যাদের বড় ডেটাসেটের উপর দ্রুত SQL কোয়েরি প্রয়োজন, এবং এটি স্থানীয়ভাবে ইনস্টল করা বা ক্লিকহাউস ক্লাউড ব্যবহার করার বিকল্প রয়েছে। রিলিজ কল এবং মিটআপের মতো কমিউনিটি রিসোর্স আপনাকে সবকিছুর সাথে আপ-টু-ডেট রাখে।
- লিনাক্স, ম্যাকওএস, ফ্রিবিএসডি-তে ইনস্টল করুন অথবা ক্লিকহাউস ক্লাউড ব্যবহার করুন
- শেখার জন্য অফিসিয়াল ওয়েবসাইট, ডক্স, টিউটোরিয়াল এবং ইউটিউব চ্যানেল
- কমিউনিটি সাপোর্টের জন্য নিয়মিত রিলিজ কল এবং গ্লোবাল মিটআপ
রেপো: ClickHouse/ClickHouse
ClickHouse/ClickHouse | ৫১ হাজার স্টার | C++ | Apache-2.0
প্রতিদিন একটি নতুন ওপেন সোর্স রেপোর জন্য ফলো করুন।
#opensource #cpp #sql #database #analytics
#Shorts
[de-DE] ClickHouse: Echtzeit-Analysen ohne Wartezeit
ClickHouse® ist ein Datenbankmanagementsystem für Echtzeitanalysen.
ClickHouse ist ein Open-Source-Datenbankmanagementsystem mit spaltenorientierter Datenbank, das Echtzeit-Analyseberichte erstellt. Es ist ideal für Entwickler, die schnelle SQL-Abfragen auf großen Datensätzen benötigen. Die Installation ist lokal möglich, alternativ kann ClickHouse Cloud genutzt werden. Community-Ressourcen wie Release-Meetings und Treffen halten Sie auf dem Laufenden.
- Installation unter Linux, macOS, FreeBSD oder Nutzung der ClickHouse Cloud
- Offizielle Website, Dokumentation, Tutorials und YouTube-Kanal zum Lernen
- Regelmäßige Release-Meetings und globale Treffen für Community-Support
Repository: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51.000 Sterne | C++ | Apache-2.0
Folgen Sie uns für täglich neue Open-Source-Repositorys.
#opensource #cpp #sql #database #analytics
#Shorts
[es-US] ClickHouse: Análisis en tiempo real sin esperas
ClickHouse® es un sistema de gestión de bases de datos para análisis en tiempo real.
ClickHouse es un sistema de gestión de bases de datos (DBMS) de código abierto orientado a columnas que proporciona informes analíticos en tiempo real. Es ideal para desarrolladores que necesitan consultas SQL rápidas en grandes conjuntos de datos, con opciones para instalarlo localmente o usar ClickHouse Cloud. Los recursos de la comunidad, como las reuniones de lanzamiento y los encuentros, te mantienen al día.
- Instalación en Linux, macOS, FreeBSD o uso de ClickHouse Cloud.
- Sitio web oficial, documentación, tutoriales y canal de YouTube para aprender.
- Reuniones de lanzamiento periódicas y encuentros globales para brindar soporte a la comunidad.
Repositorio: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51.000 estrellas | C++ | Apache 2.0
Síguenos para descubrir un nuevo repositorio de código abierto cada día.
#códigoabierto #cpp #sql #basesdedatos #análisis
#Shorts
[fr-FR] ClickHouse : L'analytique en temps réel sans attendre
ClickHouse® est un système de gestion de bases de données analytiques en temps réel.
ClickHouse est un SGBD open source orienté colonnes qui fournit des rapports analytiques en temps réel. Il est idéal pour les développeurs ayant besoin de requêtes SQL rapides sur de grands ensembles de données, avec la possibilité de l'installer localement ou d'utiliser ClickHouse Cloud. Des ressources communautaires, telles que des réunions de mise à jour et des rencontres, vous permettent de rester informé.
- Installation sur Linux, macOS, FreeBSD ou utilisation de ClickHouse Cloud
- Site web officiel, documentation, tutoriels et chaîne YouTube pour apprendre
- Réunions de mise à jour régulières et rencontres internationales pour le soutien de la communauté
Dépôt : ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51 000 étoiles | C++ | Apache-2.0
Suivez-nous pour découvrir un nouveau dépôt open source chaque jour.
#opensource #cpp #sql #database #analytics
#Shorts
[hi] ClickHouse: बिना किसी इंतज़ार के रियल-टाइम एनालिटिक्स
क्लिकहाउस® एक रीयल-टाइम एनालिटिक्स डेटाबेस मैनेजमेंट सिस्टम है।
क्लिकहाउस एक ओपन-सोर्स कॉलम-ओरिएंटेड डीबीएमएस है जो रीयल-टाइम एनालिटिकल रिपोर्टिंग प्रदान करता है। यह उन डेवलपर्स के लिए आदर्श है जिन्हें बड़े डेटासेट पर तेज़ SQL क्वेरी की आवश्यकता होती है, और इसे स्थानीय रूप से इंस्टॉल करने या क्लिकहाउस क्लाउड का उपयोग करने के विकल्प उपलब्ध हैं। रिलीज़ कॉल और मीटअप जैसे सामुदायिक संसाधन आपको नवीनतम जानकारी से अवगत रखते हैं।
- इसे Linux, macOS, FreeBSD पर इंस्टॉल करें या क्लिकहाउस क्लाउड का उपयोग करें।
- सीखने के लिए आधिकारिक वेबसाइट, दस्तावेज़, ट्यूटोरियल और YouTube चैनल उपलब्ध हैं।
- सामुदायिक सहायता के लिए नियमित रिलीज़ कॉल और वैश्विक मीटअप आयोजित किए जाते हैं।
रेपो: ClickHouse/ClickHouse
क्लिकहाउस/क्लिकहाउस | 51k स्टार | C++ | अपाचे-2.0
हर दिन एक नए ओपन सोर्स रेपो के लिए फॉलो करें।
#opensource #cpp #sql #database #analytics
#Shorts
[id] ClickHouse: Analitik real-time tanpa menunggu
ClickHouse® adalah sistem manajemen basis data analitik waktu nyata
ClickHouse adalah DBMS berorientasi kolom sumber terbuka yang menyediakan pelaporan analitik waktu nyata. Sistem ini ideal untuk pengembang yang membutuhkan kueri SQL cepat pada kumpulan data besar, dengan opsi untuk menginstal secara lokal atau menggunakan ClickHouse Cloud. Sumber daya komunitas seperti pengumuman rilis dan pertemuan komunitas akan selalu memberi Anda informasi terbaru.
- Instal di Linux, macOS, FreeBSD, atau gunakan ClickHouse Cloud
- Situs web resmi, dokumentasi, tutorial, dan saluran YouTube untuk pembelajaran
- Pengumuman rilis reguler dan pertemuan komunitas global untuk dukungan komunitas
Repositori: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51 ribu bintang | C++ | Apache-2.0
Ikuti untuk repositori sumber terbuka baru setiap hari.
#opensource #cpp #sql #database #analytics
#Shorts
[it] ClickHouse: Analisi in tempo reale senza attese
ClickHouse® è un sistema di gestione di database per l'analisi in tempo reale.
ClickHouse è un DBMS open source orientato alle colonne che fornisce report analitici in tempo reale. È ideale per gli sviluppatori che necessitano di query SQL veloci su grandi set di dati, con opzioni di installazione locale o utilizzo di ClickHouse Cloud. Risorse della community come release call e meetup ti tengono aggiornato.
- Installazione su Linux, macOS, FreeBSD o utilizzo di ClickHouse Cloud
- Sito web ufficiale, documentazione, tutorial e canale YouTube per l'apprendimento
- Release call regolari e meetup globali per il supporto della community
Repository: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51.000 stelle | C++ | Apache-2.0
Seguici per un nuovo repository open source ogni giorno.
#opensource #cpp #sql #database #analytics
#Shorts
[iw] ClickHouse: ניתוח נתונים בזמן אמת ללא המתנה
ClickHouse® היא מערכת ניהול מסדי נתונים אנליטית בזמן אמת
ClickHouse היא מערכת ניהול מסדי נתונים בקוד פתוח המספקת דיווח אנליטי בזמן אמת. היא אידיאלית עבור מפתחים הזקוקים לשאילתות SQL מהירות על מערכי נתונים גדולים, עם אפשרויות להתקנה מקומית או שימוש ב-ClickHouse Cloud. משאבי קהילה כמו שיחות שחרור ופגישות שומרים אתכם מעודכנים.
- התקנה על לינוקס, macOS, FreeBSD או שימוש ב-ClickHouse Cloud
- אתר רשמי, מסמכים, מדריכים וערוץ YouTube ללמידה
- שיחות שחרור קבועות ומפגשים גלובליים לתמיכה קהילתית
מאגר: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51 אלף כוכבים | C++ | Apache-2.0
עקבו אחר מאגר קוד פתוח חדש בכל יום.
#opensource #cpp #sql #database #analytics
#Shorts
[ja] ClickHouse:待ち時間なしのリアルタイム分析
ClickHouse®はリアルタイム分析データベース管理システムです。
ClickHouseは、リアルタイム分析レポートを提供するオープンソースの列指向DBMSです。大規模データセットに対して高速なSQLクエリを必要とする開発者に最適で、ローカルインストールまたはClickHouse Cloudの利用が可能です。リリースコールやミートアップなどのコミュニティリソースを通じて最新情報を入手できます。
- Linux、macOS、FreeBSDにインストール、またはClickHouse Cloudを利用できます
- 公式ウェブサイト、ドキュメント、チュートリアル、YouTubeチャンネルで学習できます
- 定期的なリリースコールとグローバルミートアップでコミュニティサポートを提供しています
リポジトリ: ClickHouse/ClickHouse
ClickHouse/ClickHouse | スター数51,000 | C++ | Apache-2.0
毎日新しいオープンソースリポジトリが公開されますので、フォローしてください。
#opensource #cpp #sql #database #analytics
#Shorts
[ko] ClickHouse: 기다림 없는 실시간 분석
ClickHouse®는 실시간 분석 데이터베이스 관리 시스템입니다.
ClickHouse는 실시간 분석 보고 기능을 제공하는 오픈 소스 컬럼 지향형 DBMS입니다. 대규모 데이터 세트에 대한 빠른 SQL 쿼리가 필요한 개발자에게 이상적이며, 로컬에 설치하거나 ClickHouse 클라우드를 사용할 수 있습니다. 릴리스 콜 및 밋업과 같은 커뮤니티 리소스를 통해 최신 정보를 얻을 수 있습니다.
- Linux, macOS, FreeBSD에 설치하거나 ClickHouse 클라우드를 사용하세요.
- 공식 웹사이트, 문서, 튜토리얼 및 YouTube 채널을 통해 학습할 수 있습니다.
- 정기적인 릴리스 콜 및 글로벌 밋업을 통해 커뮤니티 지원을 제공합니다.
리포지토리: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 별 51,000개 | C++ | Apache-2.0
매일 새로운 오픈 소스 리포지토리를 보려면 팔로우하세요.
#오픈소스 #C++ #SQL #데이터베이스 #분석
#Shorts
[ml] ClickHouse: കാത്തിരിപ്പില്ലാതെ തത്സമയ അനലിറ്റിക്സ്
ClickHouse® ഒരു റിയൽ-ടൈം അനലിറ്റിക്സ് ഡാറ്റാബേസ് മാനേജ്മെന്റ് സിസ്റ്റമാണ്
ക്ലിക്ക്ഹൗസ് എന്നത് റിയൽ-ടൈം അനലിറ്റിക്കൽ റിപ്പോർട്ടിംഗ് നൽകുന്ന ഒരു ഓപ്പൺ-സോഴ്സ് കോളം-ഓറിയന്റഡ് DBMS ആണ്. വലിയ ഡാറ്റാസെറ്റുകളിൽ വേഗത്തിലുള്ള SQL അന്വേഷണങ്ങൾ ആവശ്യമുള്ള ഡെവലപ്പർമാർക്ക് ഇത് അനുയോജ്യമാണ്, പ്രാദേശികമായി ഇൻസ്റ്റാൾ ചെയ്യാനോ ClickHouse ക്ലൗഡ് ഉപയോഗിക്കാനോ ഉള്ള ഓപ്ഷനുകൾ ഉണ്ട്. റിലീസ് കോളുകൾ, മീറ്റപ്പുകൾ പോലുള്ള കമ്മ്യൂണിറ്റി ഉറവിടങ്ങൾ നിങ്ങളെ ലൂപ്പിൽ നിലനിർത്തുന്നു.
- ലിനക്സ്, മാകോസ്, ഫ്രീബിഎസ്ഡി എന്നിവയിൽ ഇൻസ്റ്റാൾ ചെയ്യുക അല്ലെങ്കിൽ ClickHouse ക്ലൗഡ് ഉപയോഗിക്കുക
- പഠനത്തിനായി ഔദ്യോഗിക വെബ്സൈറ്റ്, ഡോക്സ്, ട്യൂട്ടോറിയലുകൾ, YouTube ചാനൽ
- കമ്മ്യൂണിറ്റി പിന്തുണയ്ക്കായി പതിവ് റിലീസ് കോളുകളും ആഗോള മീറ്റപ്പുകളും
Repo: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51k നക്ഷത്രങ്ങൾ | C++ | Apache-2.0
എല്ലാ ദിവസവും ഒരു പുതിയ ഓപ്പൺ സോഴ്സ് റെപ്പോയ്ക്കായി പിന്തുടരുക.
#opensource #cpp #sql #database #analytics
#Shorts
[nl-NL] ClickHouse: Real-time analytics zonder wachten
ClickHouse® is een realtime analyse-databasebeheersysteem
ClickHouse is een open-source, kolomgeoriënteerd DBMS dat realtime analytische rapportages levert. Het is ideaal voor ontwikkelaars die snelle SQL-query's op grote datasets nodig hebben, met de mogelijkheid om het lokaal te installeren of ClickHouse Cloud te gebruiken. Communitybronnen zoals release-calls en meetups houden je op de hoogte.
- Installeren op Linux, macOS, FreeBSD of gebruik ClickHouse Cloud
- Officiële website, documentatie, tutorials en YouTube-kanaal om te leren
- Regelmatige release-calls en wereldwijde meetups voor communityondersteuning
Repository: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51.000 sterren | C++ | Apache-2.0
Volg voor een nieuwe open-source repository elke dag.
#opensource #cpp #sql #database #analytics
#Shorts
[pa] ClickHouse: ਬਿਨਾਂ ਕਿਸੇ ਦੇਰੀ ਦੇ ਰੀਅਲ-ਟਾਈਮ ਐਨਾਲਿਟਿਕਸ
ClickHouse® ਇੱਕ ਰੀਅਲ-ਟਾਈਮ ਐਨਾਲਿਟਿਕਸ ਡੇਟਾਬੇਸ ਪ੍ਰਬੰਧਨ ਸਿਸਟਮ ਹੈ
ClickHouse ਇੱਕ ਓਪਨ-ਸੋਰਸ ਕਾਲਮ-ਓਰੀਐਂਟਿਡ DBMS ਹੈ ਜੋ ਰੀਅਲ-ਟਾਈਮ ਐਨਾਲਿਟੀਕਲ ਰਿਪੋਰਟਿੰਗ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਇਹ ਡਿਵੈਲਪਰਾਂ ਲਈ ਆਦਰਸ਼ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਵੱਡੇ ਡੇਟਾਸੈੱਟਾਂ 'ਤੇ ਤੇਜ਼ SQL ਪੁੱਛਗਿੱਛਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਸਥਾਪਤ ਕਰਨ ਜਾਂ ClickHouse ਕਲਾਉਡ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਵਿਕਲਪਾਂ ਦੇ ਨਾਲ। ਰਿਲੀਜ਼ ਕਾਲਾਂ ਅਤੇ ਮੁਲਾਕਾਤਾਂ ਵਰਗੇ ਕਮਿਊਨਿਟੀ ਸਰੋਤ ਤੁਹਾਨੂੰ ਲੂਪ ਵਿੱਚ ਰੱਖਦੇ ਹਨ।
- Linux, macOS, FreeBSD 'ਤੇ ਇੰਸਟਾਲ ਕਰੋ ਜਾਂ ClickHouse ਕਲਾਉਡ ਦੀ ਵਰਤੋਂ ਕਰੋ
- ਸਿੱਖਣ ਲਈ ਅਧਿਕਾਰਤ ਵੈੱਬਸਾਈਟ, ਦਸਤਾਵੇਜ਼, ਟਿਊਟੋਰਿਅਲ ਅਤੇ YouTube ਚੈਨਲ
- ਕਮਿਊਨਿਟੀ ਸਹਾਇਤਾ ਲਈ ਨਿਯਮਤ ਰਿਲੀਜ਼ ਕਾਲਾਂ ਅਤੇ ਗਲੋਬਲ ਮੁਲਾਕਾਤਾਂ
ਰੇਪੋ: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51k ਸਟਾਰ | C++ | Apache-2.0
ਹਰ ਰੋਜ਼ ਇੱਕ ਨਵੇਂ ਓਪਨ ਸੋਰਸ ਰੈਪੋ ਲਈ ਫਾਲੋ ਕਰੋ।
#opensource #cpp #sql #database #analytics
#Shorts
[pl] ClickHouse: Analityka w czasie rzeczywistym bez czekania
ClickHouse® to system zarządzania bazą danych do analityki w czasie rzeczywistym.
ClickHouse to system DBMS typu open source, zorientowany na kolumny, który zapewnia raportowanie analityczne w czasie rzeczywistym. Jest idealny dla programistów potrzebujących szybkich zapytań SQL do dużych zbiorów danych, z możliwością instalacji lokalnej lub korzystania z chmury ClickHouse. Zasoby społeczności, takie jak spotkania i konferencje dotyczące wydań, pozwalają być na bieżąco.
- Zainstaluj na systemach Linux, macOS, FreeBSD lub skorzystaj z chmury ClickHouse
- Oficjalna strona internetowa, dokumentacja, samouczki i kanał YouTube do nauki
- Regularne spotkania i konferencje dotyczące wydań i globalne spotkania dla wsparcia społeczności
Repozytorium: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51 tys. gwiazdek | C++ | Apache-2.0
Obserwuj, aby codziennie otrzymywać nowe repozytorium open source.
#opensource #cpp #sql #database #analytics
#Shorts
[pt-BR] ClickHouse: análise em tempo real sem espera
ClickHouse® é um sistema de gerenciamento de banco de dados analítico em tempo real.
O ClickHouse é um SGBD orientado a colunas de código aberto que fornece relatórios analíticos em tempo real. É ideal para desenvolvedores que precisam de consultas SQL rápidas em grandes conjuntos de dados, com opções de instalação local ou uso do ClickHouse Cloud. Recursos da comunidade, como chamadas de lançamento e encontros, mantêm você atualizado.
- Instale no Linux, macOS, FreeBSD ou use o ClickHouse Cloud
- Site oficial, documentação, tutoriais e canal do YouTube para aprendizado
- Chamadas de lançamento regulares e encontros globais para suporte da comunidade
Repositório: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51 mil estrelas | C++ | Apache-2.0
Siga para receber um novo repositório de código aberto todos os dias.
#opensource #cpp #sql #database #analytics
#Shorts
[ru] ClickHouse: аналитика в реальном времени без ожиданий
ClickHouse® — это система управления базами данных для аналитики в реальном времени.
ClickHouse — это СУБД с открытым исходным кодом, ориентированная на столбцы, которая обеспечивает аналитическую отчетность в реальном времени. Она идеально подходит для разработчиков, которым нужны быстрые SQL-запросы к большим наборам данных, с возможностью локальной установки или использования ClickHouse Cloud. Ресурсы сообщества, такие как звонки о релизах и встречи, позволяют быть в курсе событий.
- Установка на Linux, macOS, FreeBSD или использование ClickHouse Cloud
- Официальный сайт, документация, учебные пособия и канал YouTube для обучения
- Регулярные звонки о релизах и глобальные встречи для поддержки сообщества
Репозиторий: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51 тыс. звезд | C++ | Apache-2.0
Подписывайтесь, чтобы получать новый репозиторий с открытым исходным кодом каждый день.
#opensource #cpp #sql #database #analytics
#Shorts
[ta] ClickHouse: காத்திருக்கத் தேவையில்லாத நிகழ்நேர பகுப்பாய்வு
கிளிக்ஹவுஸ்® என்பது ஒரு நிகழ்நேர பகுப்பாய்வு தரவுத்தள மேலாண்மை அமைப்பு ஆகும்.
கிளிக்ஹவுஸ் என்பது நிகழ்நேர பகுப்பாய்வு அறிக்கைகளை வழங்கும் ஒரு திறந்த மூல நெடுவரிசை சார்ந்த DBMS ஆகும். பெரிய தரவுத்தொகுப்புகளில் வேகமான SQL வினவல்கள் தேவைப்படும் டெவலப்பர்களுக்கு இது மிகவும் ஏற்றது. இதை உள்ளூரில் நிறுவ அல்லது கிளிக்ஹவுஸ் கிளவுடைப் பயன்படுத்த விருப்பங்கள் உள்ளன. வெளியீட்டு அழைப்புகள் மற்றும் சந்திப்புகள் போன்ற சமூக வளங்கள் உங்களை உடனுக்குடன் தெரிந்துகொள்ள உதவுகின்றன.
- லினக்ஸ், மேக்ஓஎஸ், ஃப்ரீபிஎஸ்டி ஆகியவற்றில் நிறுவவும் அல்லது கிளிக்ஹவுஸ் கிளவுடைப் பயன்படுத்தவும்
- கற்றுக்கொள்வதற்கான அதிகாரப்பூர்வ இணையதளம், ஆவணங்கள், பயிற்சிகள் மற்றும் யூடியூப் சேனல்
- சமூக ஆதரவிற்கான வழக்கமான வெளியீட்டு அழைப்புகள் மற்றும் உலகளாவிய சந்திப்புகள்
ரெப்போ: ClickHouse/ClickHouse
கிளிக்ஹவுஸ்/கிளிக்ஹவுஸ் | 51k நட்சத்திரங்கள் | C++ | அப்பாச்சி-2.0
ஒவ்வொரு நாளும் ஒரு புதிய திறந்த மூல ரெப்போவிற்குப் பின்தொடரவும்.
#opensource #cpp #sql #database #analytics
#Shorts
[te] ClickHouse: వేచి చూడాల్సిన అవసరం లేకుండా రియల్-టైమ్ అనలిటిక్స్
క్లిక్హౌస్® అనేది ఒక రియల్-టైమ్ అనలిటిక్స్ డేటాబేస్ మేనేజ్మెంట్ సిస్టమ్
క్లిక్హౌస్ అనేది ఒక ఓపెన్-సోర్స్ కాలమ్-ఓరియంటెడ్ DBMS, ఇది రియల్-టైమ్ అనలిటికల్ రిపోర్టింగ్ను అందిస్తుంది. పెద్ద డేటాసెట్లపై వేగవంతమైన SQL క్వెరీలు అవసరమయ్యే డెవలపర్లకు ఇది చాలా అనువైనది. దీనిని స్థానికంగా ఇన్స్టాల్ చేసుకోవడానికి లేదా క్లిక్హౌస్ క్లౌడ్ను ఉపయోగించుకోవడానికి ఆప్షన్లు ఉన్నాయి. రిలీజ్ కాల్స్ మరియు మీటప్ల వంటి కమ్యూనిటీ వనరులు మిమ్మల్ని ఎప్పటికప్పుడు అప్డేట్గా ఉంచుతాయి.
- లైనక్స్, మాక్ఓఎస్, ఫ్రీబీఎస్డి లలో ఇన్స్టాల్ చేసుకోండి లేదా క్లిక్హౌస్ క్లౌడ్ను ఉపయోగించండి
- నేర్చుకోవడానికి అధికారిక వెబ్సైట్, డాక్యుమెంటేషన్, ట్యుటోరియల్స్ మరియు యూట్యూబ్ ఛానెల్
- కమ్యూనిటీ మద్దతు కోసం రెగ్యులర్ రిలీజ్ కాల్స్ మరియు గ్లోబల్ మీటప్లు
రిపో: ClickHouse/ClickHouse
క్లిక్హౌస్/క్లిక్హౌస్ | 51k స్టార్స్ | C++ | అపాచీ-2.0
ప్రతిరోజూ ఒక కొత్త ఓపెన్ సోర్స్ రిపో కోసం ఫాలో అవ్వండి.
#ఓపెన్సోర్స్ #cpp #sql #డేటాబేస్ #అనలిటిక్స్
#షార్ట్స్
[uk] ClickHouse: аналітика в реальному часі без очікування
ClickHouse® — це система керування базами даних аналітики в режимі реального часу
ClickHouse — це СУБД з відкритим вихідним кодом, орієнтована на колонки, яка забезпечує аналітичну звітність у режимі реального часу. Вона ідеально підходить для розробників, яким потрібні швидкі SQL-запити до великих наборів даних, з можливістю локального встановлення або використання ClickHouse Cloud. Ресурси спільноти, такі як релізні дзвінки та зустрічі, допомагають вам бути в курсі подій.
- Встановлюйте на Linux, macOS, FreeBSD або використовуйте ClickHouse Cloud
- Офіційний веб-сайт, документація, навчальні посібники та канал YouTube для навчання
- Регулярні релізні дзвінки та глобальні зустрічі для підтримки спільноти
Репозиторій: ClickHouse/ClickHouse
ClickHouse/ClickHouse | 51 тис. зірок | C++ | Apache-2.0
Слідкуйте за новим репозиторієм з відкритим вихідним кодом щодня.
#відкритийвихіднийкод #cpp #sql #базаданих #аналітика
#короткірепортажі
66 views
Pg_stat_ch: Postgres extension to export query telemetry to open telemetry
1 point
Mentions
Building a Server-Side Event Tracking Application The percentage of web users browsing with built-in browser tracking protection enabled is rapidly growing, and as browsers begin to ship with these features enable by default, like Apple’s ITP, the client-side attribution techniques that digital advertisers have relied on for years will become progressively less effective. I do some work with a software company who’s primary audience is younger tech-savvy users. Based on what we’ve tracked over the past 6 months, over 30% of their audience has tracking protection enabled, and an even larger percentage are on mobile devices. In a scenario like this, server-side tracking is the only accurate and effective approach to connect paid ad hits to web conversions attribution, but the options available aren’t so great. Server-side Event Tracking Software - Segment can do this well, but it’s usually very expensive for companies with a decent amount of volume and there are certain circumstances where you’ll end up coding your own cloud functions to get what you need - Google Tag Manager server-side tagging provides a close to free alternative, but it’s difficult to set up, has a lot of limitations and I have a feeling it will be detected and blocked by tracking protection in the near future - mParticle is a good alternative to Segment, but it has the same drawbacks - ClickHouse is a great option for high volume data, but it only handles the collection of events. Options for Server-side Event Tracking After reviewing the lackluster options, we decided to build our own system using the Laravel web application framework. This has many distinct advantages: - No limitations to what we can do: we can support every advertiser that can receive server side events - Stay under the radar with a less detectable tracking patterns - Ability to rapidly adapt with the changing landscape Custom Server-side Event Tracking Web Application !Custom server-side event tracking API built with Laravel While we did build our own web application to do this, we didn’t do it from scratch. Laravel provides many built-in capabilities that were ideal for us to work with, including an API ORM and API routing. From a business perspective, the web application is handling the following for us: 1. Marketing websites track pageviews and events by making an API request to a subdomain 2. When the API’s receive an event or pageview it makes outgoing API requests to advertising platforms like TikTok, Facebook and Google Ads To meet the strict rules of various tracking protection mechanisms, we’re using a server-side 1st-party cookie to track the user session. This cookie stores the click ID and other details about the first visit, and creates an anonymous identifier that persists in that user’s browser. Cross-device Attribution Tracking On the marketing website, a web based application process collects and verifies their phone number. The phone number is verified using an OTP text message, where they’re provided with a unique code they have to enter to confirm it is in fact their phone. Once that phone number is verified, a unique user_id is provided to that user, and we can associate that device with the individual anonymously. > This approach allows us to handle cross device attribution seamlessly If that person starts the application process on their laptop but doesn’t finish, they can continue later on their phone by re-verifying their phone again. This allows us to accurately identify the same person from their laptop and their phone. Technical Details To handle all this fancy stuff for a reasonably large volume of users, we’ve used the following technical approach. Under the hood it’s not all that complex, though we do go beyond what’s mentioned here to provide additional models for reporting and audience generation. These are the exact types of things that are difficult to do with off the shelf systems. This system is effectively a micro, DIY OLAP (online analytical processing) application. We use it to collect and store data from multiple data sources, including websites, applications and internal systems. Incoming API Requests from Marketing Website(s) !Event model table in MySQL database table How it works 1. API routes receive incoming POST requests with JSON payloads. 2. Payloads are validated with custom rules and return appropriate HTTP responses. 3. Valid incoming requests create a new Event model, storing the request, response, event name and user details into a MySQL database table with JSON type columns. Outgoing API Requests to Advertising Platforms !Track model table in MySQL database table How it works 1. A job is pushed into a Redis powered queued for background processing by the server. This job contains methods for each advertising platform that we’ll make an API request to. 2. The server processes jobs from the queue, creating a new Track model record for each outgoing API request made. Each record contains an incoming_id column that creates a many-to-one relationship with the incoming event that triggered it. Cloud Hosting  We’re hosting the application with Vapor using AWS resources under the hood. This allows us to comply with strict security protocols by keeping the application in a private cloud. The URL used is a subdomain of the main corporate website where paid advertising is driven to, allowing us to use a 1st-party cookie on both the API server and the marketing website receiving paid ad hits. Benefits The things that make this worth the effort. Performance !Fast changing analytical landscape, like a speeding car This custom application is actively running as we speak, and based on what we’ve seen so far, it’s an absolute beast. It has met all of our needs for tracking server-side conversion events and pageviews reliably, and has also been configured to handle custom audience generation and reporting too. The redis queue handles spikes in volume really well, processing items one by one no matter how many are received. The cloud host has been configured with auto-scaling, and it will scale up automatically to handle traffic bursts, and scale down when volumes are low. Smart Errors & Replays We’ve configured CloudWatch logging to notify us when exceptions or errors do occur, which allows us to react quickly to solve them. > Errors are bound to happen, especially in a system that connects to outside services which can change without notice. Most of these errors will occur with the outgoing API requests, as those are the aspects that will change most frequently without us knowing (thanks Facebook). By using the queue we’re able to record these errors and all associated data that was sent in to the job that triggered it. When we do fix the issue we can replay those events that previously failed. Most if not all server-side side event tracking API’s typically receive an event datetime that represents when it occurred. We use this pattern to our advantage, and when the events are replayed the datetime of the error is used to retroactively backfill the requests. The ability to replay outgoing requests that previously error’d out provides us with a way to track every single valid event we’ve received, no matter what happens. Fast Adaptation to Changing Landscape Limitations and server-side tracking APIs are changing all the time, and this system gives us the ability to quickly change with them. We can move much faster than if we were dependent on a third-party software provider. To keep up with these rapid changes I highly recommend Cookie Status. It’s a great resource for understanding the specific technical limitations imposed by various tracking protection mechanisms implemented by the major browsers and browser engines. Authors Note If you’re looking for a dependable analytics consultant and/or web app developer to build something similar for you, please let me know I’m available for hire. I have a lot of real-world experience building systems like this, which improve the ROI of digital advertising spend by reducing customer acquisition costs.
I commend Orkes for funding a Jepsen report knowing that it could be published this harshly. I question the wisdom of doing so, but it at least speaks to the team's integrity. Building databases is very hard; I know this from personal experience. Disclosure: I'm a software engineer on the core team at a different database company, but we focus on time-series use cases and do not compete in the ACID/OLTP space ParticleDB is targeting. I decided to dig into these claims a bit. > Its also faster than Redis for KV ParticleDB's own benchmarks[0] come with several caveats. Much of the win over Redis seems to come from comparing ParticleDB on 48 cores to Redis's single execution thread, from what I can tell. - On a single client in async mode, ParticleDB loses on writes at 0.86-0.90x and ties on GET. - SET at 512 clients reaches 4.81x Redis, but that's about 18.7k ops/s per allocated core vs Redis's 186k on one thread. For comparison, GET at 512 clients works out to about 33.8k ops/s per allocated core vs Redis's 228k. - Tail latency on SET is much worse, e.g. p99 of 49ms vs 5.3ms for async SET at 512 clients and 306ms vs 41ms for durable mode with pipelining. - Each test was 8 seconds long on 100k keys, but the Jepsen report saw throughput decline linearly over an hour, even on small datasets. > also numbers show this should be top on clickbench Would this claim survive after validating query results? Regardless, it's moot, because it doesn't survive on its face either. On hot runs, by my calculations from the numbers in the Clickbench PR[1], ParticleDB scores about 1.5x better than ClickHouse, however Umbra still scores about 1.5x better than ParticleDB. The fact that `GROUP BY URL` (Q33/Q34) beats `GROUP BY UserID` (Q15) by 4x on a `c6a` is also puzzling to me. Only a handful of 100+ ClickBench results that I checked do this, and ParticleDB's ratio is the most extreme. It also speeds up only 2.2x when going from 16 to 192 vCPUs, while Umbra, ClickHouse, and ElosDB manage 7-10x. This makes me wonder whether the ParticleDB submission may inadvertently be using some precomputation/intermediate caching, despite final result caching seemingly having been disabled. [0]: particledb.ai [1]: ClickBench#2952
Turso has been working on something like this for almost 2 years now tursodatabase/turso Last I checked it wasn't going too well, and it does not seem fixed: ClickBench#336 ClickBench#1009 "No matter how hard I try, it does not work :("
I work on pgrust. We shouldn't have submitted the preview when we did: it was still in active development, and its SQL coverage was far too narrow, though there was nothing in it giving it an unfair performance advantage For the other two claims in the removal PR, we wrote scripts you can use to verify the behavior of the original 0.4-preview binary: - Per-query kernels did not serve the benchmark queries[0] - The preview's fast repeat LIKE queries came from a dictionary filter cache, not a cached query result[1] Our open-sourced 0.4-beta has now been merged and is back on ClickBench[2][3] Across all queries and instance sizes on ClickBench, 0.4-beta is ~7% faster overall than the 0.4-preview binary that was removed. If 0.4-preview's numbers had come from hardcoded kernels or faked results, the open-source general engine wouldn't be beating it [0] pgrust.com [1] pgrust.com [2] benchmark.clickhouse.com [3] ClickBench#2751
Christ on a cream cracker, clickhouse labeled the previous ParticleDB submissions as jokes github.com/ClickHouse/ClickBench/pulls
How we improved bloom filters in parquet-rs [1], now adopted by ClickHouse [2]: pydantic.dev [1]: arrow-rs#9628 [2]: ClickHouse#119230
Seventeen Seconds to Parse One Name: A Security Scan Across Eleven PHP Projects This is a 16 KB name: $row = 'Smith, ' . str_repeat('V ', 8188); (new \Iliaal\NameParser\Parser())->parse($row); On nameparser 1.5.0, the last version before the fix, that call takes 17.4 seconds of CPU on my i9-13950HX. On 1.7.0 it takes 0.064 seconds. Each V is a candidate roman-numeral suffix, and the old suffix scan walked back over every earlier token for each one, so the cost grew with the square of the input. Nothing about it is exotic. It is a plausible shape for a junk row in a CSV import, and it pins a PHP worker for as long as the row keeps coming. I didn't find it. A security scan did, and the same scan ran across all ten of my PHP extensions as well. In the first three weeks of October each project got a full pass: one coordinating session, a set of subagents reading code and writing proof-of-concept exploits, and a separate verifier that re-ran every finding before it counted, on its own ASan and release builds for the C code. Everything below ships in releases from the last few weeks. Two other things landed in the same window. PHP's October security releases changed what memory_limit does, which forced code changes in three extensions and a same-day round of re-releases in five more. And DuckDB 2.0 went GA; pdo_duckdb bundles it as of today. What the scans found, and what is fixed Every project in the table has a release that carries its fixes. The counts are findings confirmed by the verifier, fixed, and released; severities are the verifier's, not the scanner's first guess. | Project | Fixed in | Confirmed and fixed | |---|---|---| | phpser | 0.7.1 | 19: 1 high, 5 medium, 13 low | | mdparser | 0.8.0 | 12: 1 high, 5 medium, 5 low, 1 informational | | fastchart | 1.8.0 | 15 reproduced, highest medium, including vendored plutovg and plutosvg; two UBSan sites in vendored code only partly addressed | | php_clickhouse | 0.13.0 | 1 high, 1 medium, plus low-severity binding fixes and 7 server-triggered crashes in clickhouse-cpp | | pdo_duckdb | 0.8.0 | 6: 1 high, 1 medium, 1 low-medium, 2 low, 1 informational | | fastjson | 0.10.0 | 4: 1 medium, 3 low, plus 1 documentation correction | | php_excel | 2.9.0 | 5: 3 low, 2 informational | | statgrab | 2.3.0 | 4: 2 medium, 2 low, plus a build bug | | fast_uuid | 0.8.1 | 5: 4 low, 1 by-design behaviour changed anyway | | phonetic | 0.4.4 | 3: 1 medium, 2 low | | nameparser | 1.6.0 | 5: 1 medium, 1 low, 3 informational | A few findings in upstream libraries are reported privately to their maintainers and aren't described here until fixes ship. The coordinating model was Mythos 5.1, but most of the work ran on other models: on fastjson, 695 of the 702 assistant messages came from Opus 5.5 subagents doing the reading, fuzzing, and PoC writing. The phpser scan doubled as an A/B/C test of my own tooling against a bare prompt, which I wrote up on X at the time. So the table measures the process more than any one model. fast_uuid and phonetic came back with zero memory-safety bugs, and php_excel's wrapper with nothing above low severity. Bugs that needed no attacker The worst php_clickhouse finding in practice wasn't the high-severity one. It was B-4, which corrupted data on ordinary queries. Decimal and DateTime64 decoding cached each column's scale in a memo keyed on the raw address of the column's type object. clickhouse-cpp allocates a fresh type object per column per block and frees the block after each callback, so the next block's first column could land at the same address and inherit the previous column's scale. Select a scale-2 column next to a scale-6 one with max_block_size=100, and a stored 12.34 came back as 0.001234, with no error. With default settings the verifier still saw 1 wrong cell in 70,000 rows. The test suite never caught it because ASan builds hide it: the sanitizer's quarantine stops freed memory from being reused, so the address never repeats. It took a release build and a real server. 0.13.0 keys the memo correctly. 0.13.0 also fixes a behaviour you should check for before upgrading. A whole-number insert into a Decimal column, 7 into Decimal(9,2), now stores 7.00 as the server does; 0.12 stored 0.07. Code that compensated by passing pre-scaled integers (700 meaning 7.00) will now store 700.00 without complaint. fast_uuid's main finding has the same character. uuid1() and uuid6() with a fixed node and clock sequence kept no last-tick state, so uuid1(1, 7) called 500,000 times produced 61,723 duplicates. The default arguments were fine. 0.8.1 fixes it. Bugs a server, a file, or a document could trigger php_clickhouse's high-severity finding was a heap overflow write. With compression enabled, a malicious or compromised server could send a compressed frame whose declared size was smaller than the 9-byte frame header, and the client wrote past its buffer with bytes the server chose. clickhouse-cpp had already fixed it on master in PR #566, but no clickhouse-cpp release contains the fix yet, and php_clickhouse's prebuilt binaries ship the library. 0.13.0 carries the patch. The same release rejects seven more server-triggered crash shapes, from FixedString(0) columns to Array offsets that run backwards, and stops a packet of a few dozen bytes from committing gigabytes of memory outside memory_limit. I sent the fixes upstream as 15 pull requests; three have merged so far and twelve are open. fastchart's two medium findings were both resource bombs. A 44 KB SVG passed to svgTo*() reached 2,121,264 KiB of resident memory through data URIs and <use> references that slipped past the input gate, all of it outside memory_limit; a 30,000-deep <use> chain crashed the process. A 1 MB CgBI PNG with decoy dimensions decoded into a 16000 by 16000 buffer. 1.8.0 runs the gate on the parsed tree, bounds <use> depth and expansion, and caps decoded images at 4,096 pixels a side. Some heavy but legitimate SVG that used to render slowly now throws a ValueError instead, so test your largest inputs. mdparser's high-severity finding was quadratic parsing: blank lines inside deeply nested lists took 1.7 seconds at 200 KB and 55 seconds at 1 MB. Seven of mdparser's thirteen findings had their root cause in md4c rather than in my code, and the fixes went upstream; md4c merged five of my pull requests for them on October 13. One remaining low-severity signed overflow is still waiting in md4c#374. 0.8.0 also changes generated heading IDs to start with user-content-, which closes a DOM-clobbering finding and breaks existing links to heading fragments when headingAnchors is on. The other high and medium findings pdo_duckdb's high finding was a use-after-free: an appender left open inside a reference cycle could outlive its PDO handle when gc_collect_cycles() or request shutdown freed the handle first. Two of the medium-range findings were the same shape. A memory_limit bailout at the wrong moment during column setup left uninitialised type pointers that were destroyed later; the PoC got the sanitizer to report a destructor running on 0x4141414141414141. 0.8.0 fixes all six. phpser's high finding was that a nested SPL unserialize() ignored allowed_classes. Its legacy handler path ran outside the decoder's context, so a class allowlist set on the outer call never reached the inner one. 0.7.1 fixes it along with eighteen others, most of them bounds on work an untrusted payload could demand. nameparser's quadratic case, from the top of this post, is fixed in 1.6.0. Its release notes say plainly that earlier notes describing hostile-input parsing as linear "did not hold for these shapes". phonetic's medium finding was a 14-byte input, bmpm("de akeaxhaeasz"), that caused an uncatchable fatal error. 0.4.4 turns budget overruns into a catchable ValueError and caps BMPM output at 256 times the input size, after a 1,560-byte input had produced 3.9 MB. memory_limit stopped stopping things PHP 8.2.35, 8.3.36, 8.4.27, and 8.5.12 shipped on October 21 with the fix for CVE-2026-109618, rated critical. Part of that fix changes what happens when an allocation crosses memory_limit. The engine used to bail out on the spot with a longjmp. Now it records the error, lets the allocation succeed, and raises the fatal at the next safe point in the VM. For PHP code that's invisible. For an extension it isn't. A C loop that decodes a payload or builds rows never reaches a VM safe point, so it keeps allocating past memory_limit until it hits a hard limit, by default twice memory_limit below 1 GiB. At the hard limit the engine calls _exit(): no shutdown functions, no destructors, no session write, and php-fpm loses the worker instead of failing one request. So every loop whose length comes from input has to notice the pending error and stop on its own. This is how phpser does it: /* PHP 8.2.35, 8.3.36, 8.4.27 and 8.5.12 queue a memory_limit error instead of * bailing out; the allocation still succeeds until a hard limit (2x the soft * limit below 1G) that _exit()s the process. Loops that keep allocating must * stop on their own once the error is pending. */ #ifdef ZEND_HAS_OOM # define PHPSER_HAS_OOM() ZEND_HAS_OOM() #else # define PHPSER_HAS_OOM() 0 #endif A loop check cannot help when a single allocation is sized from a count the payload declares. Those go through the new fallible allocators instead (zend_hash_real_finit(..., true), safe_femalloc, fecalloc), which queue the error and return NULL rather than running into the hard limit. phpser 0.10.0 uses both. mdparser 0.8.1 and pdo_duckdb 0.9.0 do the same for their input-sized loops and presizes. The re-release day There is a catch. The October headers route smart_str growth through a new engine function, smart_str_ferealloc(), from inline header code. An extension compiled against 8.4.27 headers imports that symbol even if it never mentions it, and 8.4.26 doesn't export it. My release workflows built prebuilt binaries against the newest patch of each PHP minor, which had always been the safe choice. On October 26 that meant mdparser 0.8.1, phpser 0.10.0, fastjson 0.10.1, php_clickhouse 0.13.1, and phonetic 0.4.5 all shipped Linux and macOS binaries that died with undefined symbol: smart_str_ferealloc on every PHP 8.4 before 8.4.27 and every 8.5 before 8.5.12. Source builds were fine, because they compile against the PHP they load into. All five were re-released the same day as mdparser 0.8.2, phpser 0.10.1, fastjson 0.10.2, php_clickhouse 0.13.2, and phonetic 0.4.6, and fastchart 1.8.1 picked up the same change before it could break. Their prebuilts now compile against the oldest patch of each minor (8.4.1, since 8.4.0 was never released, and 8.5.0), and each binary has to load on both the oldest and the newest patch before anything uploads. That fix has a cost, and the phpser changelog states it: a binary built against 8.4.1 headers doesn't have the memory_limit stop. To get it, you build from source on a patched PHP. Refusing vulnerable PHP releases The longer-term answer is the opposite trade. pdo_duckdb 0.9.0 makes it today: its prebuilt binaries are built against the patched headers and require PHP 8.2.35, 8.3.36, 8.4.27, or 8.5.12 or newer. Load one on 8.4.26 and the process stops at the first call: php: symbol lookup error: /ext/pdo_duckdb.so: undefined symbol: smart_str_ferealloc That message is honest but unfriendly, and it arrives at runtime rather than at startup. The next releases of pdo_duckdb, phpser, and mdparser fix that with a startup check. On PHP 8.3 and newer, the module compares the running patch with the one it was compiled against and refuses to start on an older one, naming both versions. This is mdparser's: if (php_version_id() < PHP_VERSION_ID) { zend_error(E_CORE_WARNING, "mdparser was built for PHP %s and cannot run on PHP %s; " "install a build for this PHP version or build from source", PHP_VERSION, php_version()); return FAILURE; } With that check in place, pdo_duckdb keeps the binaries it already builds against the patched headers, and phpser and mdparser can move theirs back to the patched headers and regain the memory_limit stop. A server still on 8.4.26 gets a clear startup warning instead of a crash on the first request, and with a critical CVE fixed in 8.4.27 it should move anyway. pdo_duckdb 0.9.0: DuckDB 2.0 DuckDB 2.0.0 went GA on October 21, and pdo_duckdb 0.9.0, out today, bundles it in every prebuilt binary. 0.8.0 had already built against the 2.0 previews. Source builds still work against DuckDB 1.5.3 and newer; configure detects 2.0 from duckdb_v2.h, because the 2.0 headers still report C API version 1.5.6, and it refuses to build when 2.0 headers meet an older libduckdb. The upgrade is not transparent, and the README has a full section on it. The one most likely to bite is the file format. DuckDB 2.0 writes new files at storage version 69, and DuckDB 1.5 reads only 64 to 68. If a 1.5 process has to read the file too, ask for the older format when you open it: $db = new PDO('duckdb:/data/shared.duckdb;storage_compatibility_version=v1.5.6'); On the 0.9.0 binary, a file opened that way reports v1.5.0+ in duckdb_databases(), and a default one reports v2.0.0+. Existing 1.5 files keep their format after 2.0 writes to them. The rest is DuckDB's own behaviour: a failed statement now invalidates the whole transaction, integer division by zero throws, single-arrow lambdas are rejected, and the new PEG parser is the default. That last one has a sharp edge for parameter binding: $1_0 means parameter 10 under PEG and parameter 1 under the legacy parser. Each change has a setting that restores 1.5 behaviour. 0.9.0 also adds PDO::DUCKDB_ATTR_NATIVE_STRUCTURES, an opt-in that fetches LIST, ARRAY, STRUCT, TUPLE, MAP, UNION, JSON, and VARIANT values as lossless PHP structures instead of canonical strings, with exact numerics, binary keys, and SQL NULL kept distinct from VARIANT null. VARIANT works top-level and nested, and the appender accepts PHP arrays and objects for it. One fix in 0.9.0 matters even if you never touch 2.0: two PDO connections to the same database file could lose writes and see stale reads. Equivalent paths now share one DuckDB instance while transactions stay connection-local. Performance, with the hardware attached Most of the speed work came before the scans. Apart from the nameparser row, which I re-ran for this post, these are the numbers from each project's changelog with the conditions it states. | Project | Change | Measured on | |---|---|---| | nameparser 1.6.0 | 16 KB hostile row: 17.4 s to 0.064 s | i9-13950HX, PHP 8.4.27 (my rerun of 1.5.0 vs 1.7.0) | | phpser 0.6.0 | range(0, 9999) encodes to 7 bytes; encode 57% faster, decode 66% faster | aarch64 | | phpser 0.7.0 | Signed decode 53 to 85% faster; 1,000-row rowset decodes in 429 KB instead of 645 KB | aarch64 | | fastjson 0.9.0 | fastjson_validate() costs 0.47 to 0.90x a full parse, down from 1.1 to 1.9x | Neoverse-N1 | | fastjson 0.9.0 to 0.10.0 | Key-heavy decode peak memory about 15% lower; file decode peak 9 to 33% lower | Neoverse-N1 | | fast_uuid 0.8.0 | uuid_v4() 76 to 42 ns; uuid_v4_bin_batch(100) 61 to 27 ns per UUID; uuid_v7_bin_batch() 25.9 to 16.6 ns | Neoverse-N1 | | mdparser 0.6.2 | toAst() 5 to 9% faster; retained AST memory 47% lower on softbreak-dense input; code-heavy toXml() output 49% smaller in memory | aarch64, PHP 8.4.25 | | php_clickhouse 0.12.0 | Temporal, string, and IP inserts about 19% faster; IPv4 selects about 12% | 200,000-row probes | The phpser integer-run encoding is the one I'd point at. A run with a constant step is stored as a start, a step, and a count, so range(0, 9999) encodes to 7 bytes and range(0, 999999) to 8. Native serialize() needs 137,790 bytes for the first one. fast_uuid's speedup comes from refilling its random buffer with a userspace AES-256-CTR generator with fast key erasure, instead of a getrandom() call per 8 KiB, on CPUs with AES instructions. It has one caveat, and the changelog states it: clones of one VM snapshot can repeat up to 64 KiB of output per thread. Breaking changes worth reading before you upgrade Most of these releases are drop-in. These are not: - php_clickhouse 0.13.0: whole-number Decimal inserts scale like the server's (above). - mdparser 0.8.0: heading IDs carry a user-content- prefix. - phpser 0.10.0: Closures and other unserializable objects throw instead of quietly encoding NULL. Check what you put in $_SESSION before upgrading. New wire tags since 0.7.0 mean readers must upgrade before writers. - php_excel 2.9.0 and 2.9.1: dates use PHP's timezone rather than the OS one, and text is UTF-8 regardless of the process locale. Apps that relied on the locale to pass non-UTF-8 bytes through will see different output. 2.7.0 also rejects a font from a different ExcelBook in addText(). - fastchart 1.8.0: heavy SVG that used to render slowly may now throw ValueError. - phonetic 0.4.4: oversized BMPM and Daitch-Mokotoff work throws a catchable ValueError rather than ending the request. - statgrab 2.2.2: Statgrab::ERROR_UNSUPPORTED is 44, matching libstatgrab; it was 41. On the feature side, phpser 0.8.0 and 0.9.0 added signed sessions (phpser.session_key, HMAC-SHA256), an APCu serializer (apc.serializer=phpser), keyed payloads, and an exported C API. nameparser 1.4.0 understands joint salutations, so Mr. and Mrs. Brad Smith keeps Brad as the first name, with new isJoint(), getSalutations(), and getPartner(), and 1.4.1 raised first-and-last accuracy on 30,000 NPPES provider rows from 95.94% to 97.18%. statgrab 2.3.1 fixes a heap overflow in the bundled libstatgrab's Linux command-line handling that the scan didn't cover. What a scan is worth None of these projects were neglected before October. Each had a test suite and documentation that said where its limits were. The scans still found an allowlist that didn't reach a nested call, a Decimal that came back ten thousand times too small, and a 16 KB name that took 17 seconds. Two of the most consequential findings sat in code I had already called linear or already tested under ASan, and for the Decimal bug the ASan testing is exactly what hid it. The fixes are released and listed above. Upgrade pdo_duckdb if you are moving to DuckDB 2.0, php_clickhouse if you talk to a server you don't control, and PHP itself to 8.4.27 or 8.5.12 whatever else you do.
Remove pgrust: the entry is cheating (per-query kernels and result caching) View Article | Discussion + AI Summary Summary of HN discussion 🧵👇
ClickHouse: Real-time analytics without waiting ClickHouse® is a real-time analytics database management system ClickHouse is an open‑source column‑oriented DBMS that provides real‑time analytical reporting. It’s ideal for developers needing fast SQL queries on large datasets, with options to install locally or use ClickHouse Cloud. Community resources like release calls and meetups keep you in the loop. - Install on Linux, macOS, FreeBSD or use ClickHouse Cloud - Official website, docs, tutorials, and YouTube channel for learning - Regular release calls and global meetups for community support Repo: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51k stars | C++ | Apache-2.0 Follow for a new open source repo every day. #opensource #cpp #sql #database #analytics #Shorts [ar] ClickHouse: تحليلات فورية دون انتظار ClickHouse® هو نظام إدارة قواعد بيانات لتحليلات البيانات في الوقت الفعلي. ClickHouse هو نظام إدارة قواعد بيانات مفتوح المصدر، يعتمد على الأعمدة، ويوفر تقارير تحليلية فورية. يُعدّ مثاليًا للمطورين الذين يحتاجون إلى استعلامات SQL سريعة على مجموعات بيانات ضخمة، مع خيارات للتثبيت محليًا أو استخدام ClickHouse Cloud. تُبقيك موارد المجتمع، مثل اجتماعات الإصدارات واللقاءات، على اطلاع دائم. - التثبيت على Linux أو macOS أو FreeBSD أو استخدام ClickHouse Cloud - الموقع الرسمي، والوثائق، والدروس التعليمية، وقناة YouTube للتعلم - اجتماعات إصدارات دورية ولقاءات عالمية لدعم المجتمع المستودع: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51 ألف نجمة | C++ | Apache-2.0 تابعنا للحصول على مستودع جديد مفتوح المصدر يوميًا. #opensource #cpp #sql #database #analytics #Shorts [bn] ClickHouse: কোনো অপেক্ষা ছাড়াই রিয়েল-টাইম অ্যানালিটিক্স ক্লিকহাউস® একটি রিয়েল-টাইম অ্যানালিটিক্স ডাটাবেস ম্যানেজমেন্ট সিস্টেম। ক্লিকহাউস একটি ওপেন-সোর্স কলাম-ভিত্তিক ডিবিএমএস যা রিয়েল-টাইম অ্যানালিটিক্যাল রিপোর্টিং প্রদান করে। এটি সেইসব ডেভেলপারদের জন্য আদর্শ যাদের বড় ডেটাসেটের উপর দ্রুত SQL কোয়েরি প্রয়োজন, এবং এটি স্থানীয়ভাবে ইনস্টল করা বা ক্লিকহাউস ক্লাউড ব্যবহার করার বিকল্প রয়েছে। রিলিজ কল এবং মিটআপের মতো কমিউনিটি রিসোর্স আপনাকে সবকিছুর সাথে আপ-টু-ডেট রাখে। - লিনাক্স, ম্যাকওএস, ফ্রিবিএসডি-তে ইনস্টল করুন অথবা ক্লিকহাউস ক্লাউড ব্যবহার করুন - শেখার জন্য অফিসিয়াল ওয়েবসাইট, ডক্স, টিউটোরিয়াল এবং ইউটিউব চ্যানেল - কমিউনিটি সাপোর্টের জন্য নিয়মিত রিলিজ কল এবং গ্লোবাল মিটআপ রেপো: ClickHouse/ClickHouse ClickHouse/ClickHouse | ৫১ হাজার স্টার | C++ | Apache-2.0 প্রতিদিন একটি নতুন ওপেন সোর্স রেপোর জন্য ফলো করুন। #opensource #cpp #sql #database #analytics #Shorts [de-DE] ClickHouse: Echtzeit-Analysen ohne Wartezeit ClickHouse® ist ein Datenbankmanagementsystem für Echtzeitanalysen. ClickHouse ist ein Open-Source-Datenbankmanagementsystem mit spaltenorientierter Datenbank, das Echtzeit-Analyseberichte erstellt. Es ist ideal für Entwickler, die schnelle SQL-Abfragen auf großen Datensätzen benötigen. Die Installation ist lokal möglich, alternativ kann ClickHouse Cloud genutzt werden. Community-Ressourcen wie Release-Meetings und Treffen halten Sie auf dem Laufenden. - Installation unter Linux, macOS, FreeBSD oder Nutzung der ClickHouse Cloud - Offizielle Website, Dokumentation, Tutorials und YouTube-Kanal zum Lernen - Regelmäßige Release-Meetings und globale Treffen für Community-Support Repository: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51.000 Sterne | C++ | Apache-2.0 Folgen Sie uns für täglich neue Open-Source-Repositorys. #opensource #cpp #sql #database #analytics #Shorts [es-US] ClickHouse: Análisis en tiempo real sin esperas ClickHouse® es un sistema de gestión de bases de datos para análisis en tiempo real. ClickHouse es un sistema de gestión de bases de datos (DBMS) de código abierto orientado a columnas que proporciona informes analíticos en tiempo real. Es ideal para desarrolladores que necesitan consultas SQL rápidas en grandes conjuntos de datos, con opciones para instalarlo localmente o usar ClickHouse Cloud. Los recursos de la comunidad, como las reuniones de lanzamiento y los encuentros, te mantienen al día. - Instalación en Linux, macOS, FreeBSD o uso de ClickHouse Cloud. - Sitio web oficial, documentación, tutoriales y canal de YouTube para aprender. - Reuniones de lanzamiento periódicas y encuentros globales para brindar soporte a la comunidad. Repositorio: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51.000 estrellas | C++ | Apache 2.0 Síguenos para descubrir un nuevo repositorio de código abierto cada día. #códigoabierto #cpp #sql #basesdedatos #análisis #Shorts [fr-FR] ClickHouse : L'analytique en temps réel sans attendre ClickHouse® est un système de gestion de bases de données analytiques en temps réel. ClickHouse est un SGBD open source orienté colonnes qui fournit des rapports analytiques en temps réel. Il est idéal pour les développeurs ayant besoin de requêtes SQL rapides sur de grands ensembles de données, avec la possibilité de l'installer localement ou d'utiliser ClickHouse Cloud. Des ressources communautaires, telles que des réunions de mise à jour et des rencontres, vous permettent de rester informé. - Installation sur Linux, macOS, FreeBSD ou utilisation de ClickHouse Cloud - Site web officiel, documentation, tutoriels et chaîne YouTube pour apprendre - Réunions de mise à jour régulières et rencontres internationales pour le soutien de la communauté Dépôt : ClickHouse/ClickHouse ClickHouse/ClickHouse | 51 000 étoiles | C++ | Apache-2.0 Suivez-nous pour découvrir un nouveau dépôt open source chaque jour. #opensource #cpp #sql #database #analytics #Shorts [hi] ClickHouse: बिना किसी इंतज़ार के रियल-टाइम एनालिटिक्स क्लिकहाउस® एक रीयल-टाइम एनालिटिक्स डेटाबेस मैनेजमेंट सिस्टम है। क्लिकहाउस एक ओपन-सोर्स कॉलम-ओरिएंटेड डीबीएमएस है जो रीयल-टाइम एनालिटिकल रिपोर्टिंग प्रदान करता है। यह उन डेवलपर्स के लिए आदर्श है जिन्हें बड़े डेटासेट पर तेज़ SQL क्वेरी की आवश्यकता होती है, और इसे स्थानीय रूप से इंस्टॉल करने या क्लिकहाउस क्लाउड का उपयोग करने के विकल्प उपलब्ध हैं। रिलीज़ कॉल और मीटअप जैसे सामुदायिक संसाधन आपको नवीनतम जानकारी से अवगत रखते हैं। - इसे Linux, macOS, FreeBSD पर इंस्टॉल करें या क्लिकहाउस क्लाउड का उपयोग करें। - सीखने के लिए आधिकारिक वेबसाइट, दस्तावेज़, ट्यूटोरियल और YouTube चैनल उपलब्ध हैं। - सामुदायिक सहायता के लिए नियमित रिलीज़ कॉल और वैश्विक मीटअप आयोजित किए जाते हैं। रेपो: ClickHouse/ClickHouse क्लिकहाउस/क्लिकहाउस | 51k स्टार | C++ | अपाचे-2.0 हर दिन एक नए ओपन सोर्स रेपो के लिए फॉलो करें। #opensource #cpp #sql #database #analytics #Shorts [id] ClickHouse: Analitik real-time tanpa menunggu ClickHouse® adalah sistem manajemen basis data analitik waktu nyata ClickHouse adalah DBMS berorientasi kolom sumber terbuka yang menyediakan pelaporan analitik waktu nyata. Sistem ini ideal untuk pengembang yang membutuhkan kueri SQL cepat pada kumpulan data besar, dengan opsi untuk menginstal secara lokal atau menggunakan ClickHouse Cloud. Sumber daya komunitas seperti pengumuman rilis dan pertemuan komunitas akan selalu memberi Anda informasi terbaru. - Instal di Linux, macOS, FreeBSD, atau gunakan ClickHouse Cloud - Situs web resmi, dokumentasi, tutorial, dan saluran YouTube untuk pembelajaran - Pengumuman rilis reguler dan pertemuan komunitas global untuk dukungan komunitas Repositori: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51 ribu bintang | C++ | Apache-2.0 Ikuti untuk repositori sumber terbuka baru setiap hari. #opensource #cpp #sql #database #analytics #Shorts [it] ClickHouse: Analisi in tempo reale senza attese ClickHouse® è un sistema di gestione di database per l'analisi in tempo reale. ClickHouse è un DBMS open source orientato alle colonne che fornisce report analitici in tempo reale. È ideale per gli sviluppatori che necessitano di query SQL veloci su grandi set di dati, con opzioni di installazione locale o utilizzo di ClickHouse Cloud. Risorse della community come release call e meetup ti tengono aggiornato. - Installazione su Linux, macOS, FreeBSD o utilizzo di ClickHouse Cloud - Sito web ufficiale, documentazione, tutorial e canale YouTube per l'apprendimento - Release call regolari e meetup globali per il supporto della community Repository: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51.000 stelle | C++ | Apache-2.0 Seguici per un nuovo repository open source ogni giorno. #opensource #cpp #sql #database #analytics #Shorts [iw] ClickHouse: ניתוח נתונים בזמן אמת ללא המתנה ClickHouse® היא מערכת ניהול מסדי נתונים אנליטית בזמן אמת ClickHouse היא מערכת ניהול מסדי נתונים בקוד פתוח המספקת דיווח אנליטי בזמן אמת. היא אידיאלית עבור מפתחים הזקוקים לשאילתות SQL מהירות על מערכי נתונים גדולים, עם אפשרויות להתקנה מקומית או שימוש ב-ClickHouse Cloud. משאבי קהילה כמו שיחות שחרור ופגישות שומרים אתכם מעודכנים. - התקנה על לינוקס, macOS, FreeBSD או שימוש ב-ClickHouse Cloud - אתר רשמי, מסמכים, מדריכים וערוץ YouTube ללמידה - שיחות שחרור קבועות ומפגשים גלובליים לתמיכה קהילתית מאגר: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51 אלף כוכבים | C++ | Apache-2.0 עקבו אחר מאגר קוד פתוח חדש בכל יום. #opensource #cpp #sql #database #analytics #Shorts [ja] ClickHouse:待ち時間なしのリアルタイム分析 ClickHouse®はリアルタイム分析データベース管理システムです。 ClickHouseは、リアルタイム分析レポートを提供するオープンソースの列指向DBMSです。大規模データセットに対して高速なSQLクエリを必要とする開発者に最適で、ローカルインストールまたはClickHouse Cloudの利用が可能です。リリースコールやミートアップなどのコミュニティリソースを通じて最新情報を入手できます。 - Linux、macOS、FreeBSDにインストール、またはClickHouse Cloudを利用できます - 公式ウェブサイト、ドキュメント、チュートリアル、YouTubeチャンネルで学習できます - 定期的なリリースコールとグローバルミートアップでコミュニティサポートを提供しています リポジトリ: ClickHouse/ClickHouse ClickHouse/ClickHouse | スター数51,000 | C++ | Apache-2.0 毎日新しいオープンソースリポジトリが公開されますので、フォローしてください。 #opensource #cpp #sql #database #analytics #Shorts [ko] ClickHouse: 기다림 없는 실시간 분석 ClickHouse®는 실시간 분석 데이터베이스 관리 시스템입니다. ClickHouse는 실시간 분석 보고 기능을 제공하는 오픈 소스 컬럼 지향형 DBMS입니다. 대규모 데이터 세트에 대한 빠른 SQL 쿼리가 필요한 개발자에게 이상적이며, 로컬에 설치하거나 ClickHouse 클라우드를 사용할 수 있습니다. 릴리스 콜 및 밋업과 같은 커뮤니티 리소스를 통해 최신 정보를 얻을 수 있습니다. - Linux, macOS, FreeBSD에 설치하거나 ClickHouse 클라우드를 사용하세요. - 공식 웹사이트, 문서, 튜토리얼 및 YouTube 채널을 통해 학습할 수 있습니다. - 정기적인 릴리스 콜 및 글로벌 밋업을 통해 커뮤니티 지원을 제공합니다. 리포지토리: ClickHouse/ClickHouse ClickHouse/ClickHouse | 별 51,000개 | C++ | Apache-2.0 매일 새로운 오픈 소스 리포지토리를 보려면 팔로우하세요. #오픈소스 #C++ #SQL #데이터베이스 #분석 #Shorts [ml] ClickHouse: കാത്തിരിപ്പില്ലാതെ തത്സമയ അനലിറ്റിക്സ് ClickHouse® ഒരു റിയൽ-ടൈം അനലിറ്റിക്സ് ഡാറ്റാബേസ് മാനേജ്മെന്റ് സിസ്റ്റമാണ് ക്ലിക്ക്ഹൗസ് എന്നത് റിയൽ-ടൈം അനലിറ്റിക്കൽ റിപ്പോർട്ടിംഗ് നൽകുന്ന ഒരു ഓപ്പൺ-സോഴ്സ് കോളം-ഓറിയന്റഡ് DBMS ആണ്. വലിയ ഡാറ്റാസെറ്റുകളിൽ വേഗത്തിലുള്ള SQL അന്വേഷണങ്ങൾ ആവശ്യമുള്ള ഡെവലപ്പർമാർക്ക് ഇത് അനുയോജ്യമാണ്, പ്രാദേശികമായി ഇൻസ്റ്റാൾ ചെയ്യാനോ ClickHouse ക്ലൗഡ് ഉപയോഗിക്കാനോ ഉള്ള ഓപ്ഷനുകൾ ഉണ്ട്. റിലീസ് കോളുകൾ, മീറ്റപ്പുകൾ പോലുള്ള കമ്മ്യൂണിറ്റി ഉറവിടങ്ങൾ നിങ്ങളെ ലൂപ്പിൽ നിലനിർത്തുന്നു. - ലിനക്സ്, മാകോസ്, ഫ്രീബിഎസ്ഡി എന്നിവയിൽ ഇൻസ്റ്റാൾ ചെയ്യുക അല്ലെങ്കിൽ ClickHouse ക്ലൗഡ് ഉപയോഗിക്കുക - പഠനത്തിനായി ഔദ്യോഗിക വെബ്സൈറ്റ്, ഡോക്സ്, ട്യൂട്ടോറിയലുകൾ, YouTube ചാനൽ - കമ്മ്യൂണിറ്റി പിന്തുണയ്ക്കായി പതിവ് റിലീസ് കോളുകളും ആഗോള മീറ്റപ്പുകളും Repo: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51k നക്ഷത്രങ്ങൾ | C++ | Apache-2.0 എല്ലാ ദിവസവും ഒരു പുതിയ ഓപ്പൺ സോഴ്സ് റെപ്പോയ്ക്കായി പിന്തുടരുക. #opensource #cpp #sql #database #analytics #Shorts [nl-NL] ClickHouse: Real-time analytics zonder wachten ClickHouse® is een realtime analyse-databasebeheersysteem ClickHouse is een open-source, kolomgeoriënteerd DBMS dat realtime analytische rapportages levert. Het is ideaal voor ontwikkelaars die snelle SQL-query's op grote datasets nodig hebben, met de mogelijkheid om het lokaal te installeren of ClickHouse Cloud te gebruiken. Communitybronnen zoals release-calls en meetups houden je op de hoogte. - Installeren op Linux, macOS, FreeBSD of gebruik ClickHouse Cloud - Officiële website, documentatie, tutorials en YouTube-kanaal om te leren - Regelmatige release-calls en wereldwijde meetups voor communityondersteuning Repository: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51.000 sterren | C++ | Apache-2.0 Volg voor een nieuwe open-source repository elke dag. #opensource #cpp #sql #database #analytics #Shorts [pa] ClickHouse: ਬਿਨਾਂ ਕਿਸੇ ਦੇਰੀ ਦੇ ਰੀਅਲ-ਟਾਈਮ ਐਨਾਲਿਟਿਕਸ ClickHouse® ਇੱਕ ਰੀਅਲ-ਟਾਈਮ ਐਨਾਲਿਟਿਕਸ ਡੇਟਾਬੇਸ ਪ੍ਰਬੰਧਨ ਸਿਸਟਮ ਹੈ ClickHouse ਇੱਕ ਓਪਨ-ਸੋਰਸ ਕਾਲਮ-ਓਰੀਐਂਟਿਡ DBMS ਹੈ ਜੋ ਰੀਅਲ-ਟਾਈਮ ਐਨਾਲਿਟੀਕਲ ਰਿਪੋਰਟਿੰਗ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਇਹ ਡਿਵੈਲਪਰਾਂ ਲਈ ਆਦਰਸ਼ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਵੱਡੇ ਡੇਟਾਸੈੱਟਾਂ 'ਤੇ ਤੇਜ਼ SQL ਪੁੱਛਗਿੱਛਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਸਥਾਪਤ ਕਰਨ ਜਾਂ ClickHouse ਕਲਾਉਡ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਵਿਕਲਪਾਂ ਦੇ ਨਾਲ। ਰਿਲੀਜ਼ ਕਾਲਾਂ ਅਤੇ ਮੁਲਾਕਾਤਾਂ ਵਰਗੇ ਕਮਿਊਨਿਟੀ ਸਰੋਤ ਤੁਹਾਨੂੰ ਲੂਪ ਵਿੱਚ ਰੱਖਦੇ ਹਨ। - Linux, macOS, FreeBSD 'ਤੇ ਇੰਸਟਾਲ ਕਰੋ ਜਾਂ ClickHouse ਕਲਾਉਡ ਦੀ ਵਰਤੋਂ ਕਰੋ - ਸਿੱਖਣ ਲਈ ਅਧਿਕਾਰਤ ਵੈੱਬਸਾਈਟ, ਦਸਤਾਵੇਜ਼, ਟਿਊਟੋਰਿਅਲ ਅਤੇ YouTube ਚੈਨਲ - ਕਮਿਊਨਿਟੀ ਸਹਾਇਤਾ ਲਈ ਨਿਯਮਤ ਰਿਲੀਜ਼ ਕਾਲਾਂ ਅਤੇ ਗਲੋਬਲ ਮੁਲਾਕਾਤਾਂ ਰੇਪੋ: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51k ਸਟਾਰ | C++ | Apache-2.0 ਹਰ ਰੋਜ਼ ਇੱਕ ਨਵੇਂ ਓਪਨ ਸੋਰਸ ਰੈਪੋ ਲਈ ਫਾਲੋ ਕਰੋ। #opensource #cpp #sql #database #analytics #Shorts [pl] ClickHouse: Analityka w czasie rzeczywistym bez czekania ClickHouse® to system zarządzania bazą danych do analityki w czasie rzeczywistym. ClickHouse to system DBMS typu open source, zorientowany na kolumny, który zapewnia raportowanie analityczne w czasie rzeczywistym. Jest idealny dla programistów potrzebujących szybkich zapytań SQL do dużych zbiorów danych, z możliwością instalacji lokalnej lub korzystania z chmury ClickHouse. Zasoby społeczności, takie jak spotkania i konferencje dotyczące wydań, pozwalają być na bieżąco. - Zainstaluj na systemach Linux, macOS, FreeBSD lub skorzystaj z chmury ClickHouse - Oficjalna strona internetowa, dokumentacja, samouczki i kanał YouTube do nauki - Regularne spotkania i konferencje dotyczące wydań i globalne spotkania dla wsparcia społeczności Repozytorium: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51 tys. gwiazdek | C++ | Apache-2.0 Obserwuj, aby codziennie otrzymywać nowe repozytorium open source. #opensource #cpp #sql #database #analytics #Shorts [pt-BR] ClickHouse: análise em tempo real sem espera ClickHouse® é um sistema de gerenciamento de banco de dados analítico em tempo real. O ClickHouse é um SGBD orientado a colunas de código aberto que fornece relatórios analíticos em tempo real. É ideal para desenvolvedores que precisam de consultas SQL rápidas em grandes conjuntos de dados, com opções de instalação local ou uso do ClickHouse Cloud. Recursos da comunidade, como chamadas de lançamento e encontros, mantêm você atualizado. - Instale no Linux, macOS, FreeBSD ou use o ClickHouse Cloud - Site oficial, documentação, tutoriais e canal do YouTube para aprendizado - Chamadas de lançamento regulares e encontros globais para suporte da comunidade Repositório: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51 mil estrelas | C++ | Apache-2.0 Siga para receber um novo repositório de código aberto todos os dias. #opensource #cpp #sql #database #analytics #Shorts [ru] ClickHouse: аналитика в реальном времени без ожиданий ClickHouse® — это система управления базами данных для аналитики в реальном времени. ClickHouse — это СУБД с открытым исходным кодом, ориентированная на столбцы, которая обеспечивает аналитическую отчетность в реальном времени. Она идеально подходит для разработчиков, которым нужны быстрые SQL-запросы к большим наборам данных, с возможностью локальной установки или использования ClickHouse Cloud. Ресурсы сообщества, такие как звонки о релизах и встречи, позволяют быть в курсе событий. - Установка на Linux, macOS, FreeBSD или использование ClickHouse Cloud - Официальный сайт, документация, учебные пособия и канал YouTube для обучения - Регулярные звонки о релизах и глобальные встречи для поддержки сообщества Репозиторий: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51 тыс. звезд | C++ | Apache-2.0 Подписывайтесь, чтобы получать новый репозиторий с открытым исходным кодом каждый день. #opensource #cpp #sql #database #analytics #Shorts [ta] ClickHouse: காத்திருக்கத் தேவையில்லாத நிகழ்நேர பகுப்பாய்வு கிளிக்ஹவுஸ்® என்பது ஒரு நிகழ்நேர பகுப்பாய்வு தரவுத்தள மேலாண்மை அமைப்பு ஆகும். கிளிக்ஹவுஸ் என்பது நிகழ்நேர பகுப்பாய்வு அறிக்கைகளை வழங்கும் ஒரு திறந்த மூல நெடுவரிசை சார்ந்த DBMS ஆகும். பெரிய தரவுத்தொகுப்புகளில் வேகமான SQL வினவல்கள் தேவைப்படும் டெவலப்பர்களுக்கு இது மிகவும் ஏற்றது. இதை உள்ளூரில் நிறுவ அல்லது கிளிக்ஹவுஸ் கிளவுடைப் பயன்படுத்த விருப்பங்கள் உள்ளன. வெளியீட்டு அழைப்புகள் மற்றும் சந்திப்புகள் போன்ற சமூக வளங்கள் உங்களை உடனுக்குடன் தெரிந்துகொள்ள உதவுகின்றன. - லினக்ஸ், மேக்ஓஎஸ், ஃப்ரீபிஎஸ்டி ஆகியவற்றில் நிறுவவும் அல்லது கிளிக்ஹவுஸ் கிளவுடைப் பயன்படுத்தவும் - கற்றுக்கொள்வதற்கான அதிகாரப்பூர்வ இணையதளம், ஆவணங்கள், பயிற்சிகள் மற்றும் யூடியூப் சேனல் - சமூக ஆதரவிற்கான வழக்கமான வெளியீட்டு அழைப்புகள் மற்றும் உலகளாவிய சந்திப்புகள் ரெப்போ: ClickHouse/ClickHouse கிளிக்ஹவுஸ்/கிளிக்ஹவுஸ் | 51k நட்சத்திரங்கள் | C++ | அப்பாச்சி-2.0 ஒவ்வொரு நாளும் ஒரு புதிய திறந்த மூல ரெப்போவிற்குப் பின்தொடரவும். #opensource #cpp #sql #database #analytics #Shorts [te] ClickHouse: వేచి చూడాల్సిన అవసరం లేకుండా రియల్-టైమ్ అనలిటిక్స్ క్లిక్హౌస్® అనేది ఒక రియల్-టైమ్ అనలిటిక్స్ డేటాబేస్ మేనేజ్మెంట్ సిస్టమ్ క్లిక్హౌస్ అనేది ఒక ఓపెన్-సోర్స్ కాలమ్-ఓరియంటెడ్ DBMS, ఇది రియల్-టైమ్ అనలిటికల్ రిపోర్టింగ్ను అందిస్తుంది. పెద్ద డేటాసెట్లపై వేగవంతమైన SQL క్వెరీలు అవసరమయ్యే డెవలపర్లకు ఇది చాలా అనువైనది. దీనిని స్థానికంగా ఇన్స్టాల్ చేసుకోవడానికి లేదా క్లిక్హౌస్ క్లౌడ్ను ఉపయోగించుకోవడానికి ఆప్షన్లు ఉన్నాయి. రిలీజ్ కాల్స్ మరియు మీటప్ల వంటి కమ్యూనిటీ వనరులు మిమ్మల్ని ఎప్పటికప్పుడు అప్డేట్గా ఉంచుతాయి. - లైనక్స్, మాక్ఓఎస్, ఫ్రీబీఎస్డి లలో ఇన్స్టాల్ చేసుకోండి లేదా క్లిక్హౌస్ క్లౌడ్ను ఉపయోగించండి - నేర్చుకోవడానికి అధికారిక వెబ్సైట్, డాక్యుమెంటేషన్, ట్యుటోరియల్స్ మరియు యూట్యూబ్ ఛానెల్ - కమ్యూనిటీ మద్దతు కోసం రెగ్యులర్ రిలీజ్ కాల్స్ మరియు గ్లోబల్ మీటప్లు రిపో: ClickHouse/ClickHouse క్లిక్హౌస్/క్లిక్హౌస్ | 51k స్టార్స్ | C++ | అపాచీ-2.0 ప్రతిరోజూ ఒక కొత్త ఓపెన్ సోర్స్ రిపో కోసం ఫాలో అవ్వండి. #ఓపెన్సోర్స్ #cpp #sql #డేటాబేస్ #అనలిటిక్స్ #షార్ట్స్ [uk] ClickHouse: аналітика в реальному часі без очікування ClickHouse® — це система керування базами даних аналітики в режимі реального часу ClickHouse — це СУБД з відкритим вихідним кодом, орієнтована на колонки, яка забезпечує аналітичну звітність у режимі реального часу. Вона ідеально підходить для розробників, яким потрібні швидкі SQL-запити до великих наборів даних, з можливістю локального встановлення або використання ClickHouse Cloud. Ресурси спільноти, такі як релізні дзвінки та зустрічі, допомагають вам бути в курсі подій. - Встановлюйте на Linux, macOS, FreeBSD або використовуйте ClickHouse Cloud - Офіційний веб-сайт, документація, навчальні посібники та канал YouTube для навчання - Регулярні релізні дзвінки та глобальні зустрічі для підтримки спільноти Репозиторій: ClickHouse/ClickHouse ClickHouse/ClickHouse | 51 тис. зірок | C++ | Apache-2.0 Слідкуйте за новим репозиторієм з відкритим вихідним кодом щодня. #відкритийвихіднийкод #cpp #sql #базаданих #аналітика #короткірепортажі
Pg_stat_ch: Postgres extension to export query telemetry to open telemetry