Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wZm2l-001GxR-0w for pgsql-general@arkaria.postgresql.org; Wed, 17 Jun 2026 08:54:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wZm2i-005GYs-1J for pgsql-general@arkaria.postgresql.org; Wed, 17 Jun 2026 08:54:40 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wZgqv-0040fd-1t for pgsql-general@lists.postgresql.org; Wed, 17 Jun 2026 03:22:09 +0000 Received: from mail-lf1-x12d.google.com ([2a00:1450:4864:20::12d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wZgqr-00000000qB5-2zKZ for pgsql-general@lists.postgresql.org; Wed, 17 Jun 2026 03:22:08 +0000 Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-5aa6792e7b8so4815270e87.1 for ; Tue, 16 Jun 2026 20:22:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1781666519; cv=none; d=google.com; s=arc-20240605; b=D4XBAdMHuEXFalMz/R8u21e8KWDM8258B1HKSrSEzw0TbxfIkG6ots4wOGCRPT0b74 bQK1WfaB7M6R3IApL65DY10fUPgfSXIMP1xk9yl1SgNremLT0ORfpVEPgKvYS+wD8RLU G7l+8DdYrrCxDNrXP2c5IO9s3UmxQyWAM385MN38KP0J4PQfnJSHtcRc2K00Urh0qqMN bcMTr8iqcJIX+0KFMGRlP0InYcrb+uT7pufqz0+yiMMrL6XPOue0Iv/cF5cOIOifoS7k g40mbBDNiyDld+TqhbKieqclev6P9dgYM7Mhr/K+EsBbxjlMbg0IdjFBUjv+uYwvlS70 qr0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :mime-version:dkim-signature; bh=3FQf2kl9FSsSqIaLeUxWtnV7oOr0+DloVI7vYW2TcMk=; fh=OJ+1OI8tv2H8v7ERQzm1BbyCoi5eAq4naroGlZCLb1s=; b=An18aRMkkhtN+nE9sSZ5IYpaWjvTlpW57MhFqWiajiM1E4s6y5z+4X1xlN5tGxkIGq c5xP+Bm8ucfhhI7i6iYX9EfYu7FfIMuzhKc5cXz2MTtIAm0tN4yVdmrIBIADqqU51KI4 zJ/sXPz9xi943rjvl6OvxE1liBSS4j2OqOsENTS8GQRRpVBO+KpD7nFzCa3J29JGpziB zXwcX6qXHvjC2z8s9hs6Nnsq23nszlSNCV/hayvzaGJ0d2trVU/OJCbev5BmHeQq+A0j g6YTsmATGeh50q2HroK1pXV8dYpnUUEoGj3Miv21Yq5CAstM/5W5Q+Amp3bQ43dhqiVI EwBg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=climaterisk.com.au; s=google; t=1781666519; x=1782271319; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=3FQf2kl9FSsSqIaLeUxWtnV7oOr0+DloVI7vYW2TcMk=; b=cVRg4kiyAsr4pdBglsufbBBiL8tjb0bY0jkZpG14rXcUY9gCuR/jyqg7O/x0OpbJ6f UwWArxposU/Rxqf3Gr8QpgOvNlJ9s0aoG1oX8xdASC/qa3ELBZ46veUCtwjnSZGXtrvU UAaJXMXI8WjTc3qg0fvhbyU6A/9NTtjS91+YWupJf5mM2eXdaM+7EdVJDA1SUqoOlIMv drTPsVB+mN+UvrrDOzlULnBkCb89lESYTq5ta2AS9Qr6gCR3JXWkXp5mfXiYsCtbsjR8 tZzlJAoFT24csn+4JlupiLk5QTp8ONuoZDvdnuavF+cCLerd4bnlhETv4X4XZERI8N80 Vqgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781666519; x=1782271319; h=content-transfer-encoding:cc:to:subject:message-id:date:from :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=3FQf2kl9FSsSqIaLeUxWtnV7oOr0+DloVI7vYW2TcMk=; b=pisBy1ed6ND1jmXjdLlCptKkprVl+FyZtiMNHCfK+9f7JT5BVa470j1ZUDaWUiCPi3 K2wfrCybInNMca4n/ZhLllVdiP6RZccgImc4lH4LMvJyTKVSZqDQxur1dl5zOYb3NGOV HAZASQlvUR0bEvEh/EIZniFwxcbY9XLYyPxaSwWnjVtvZjaI14xDx0EZvwS+xbaPPEzw xTymiDu2jzIMgWdb9XPUCAm8Av6ftJPV2qED5rYFyFAhXrVAo8OhUIEnVYLRxu42YVa2 0g3bpkUsKmxZw93Vf4ENQKGjd7RFeHVVxKEcxwi7auhBjBCPNq2aOa9EIYWmxBhefE6s k5hA== X-Gm-Message-State: AOJu0YwciPn7Fn9RMPAqNTjB7bTLaP/5RePg26Ucab7eFYOKqCq8+l++ kJjkPFH9evmtXYAQZiS0TVwjSNgZ0UmV0cA3Os3wZo0vqMCXzc9+9QHldvZ9n1LtOmHYtzPN6V5 +GVKhvmB2jr7hm2uBY1XMk7fVvXpsCBhEpDvenPkpLXRKpiDTwTXvwc4+Xw== X-Gm-Gg: Acq92OFQeGeJsDty0U93gXZqf3hajWS52Z0gn9rc01KAbRx7NiZVWColBL4vCujiHu4 FlanMesUOvZ9IyLas2pIp1k0An981rfn4WMplH/4Dpn7yVFHCq7+Otl4lmLBw+E4YlCL0KXAuI4 zEjAH1RgM9ECL9+5cLfIdwk6CRAW/r4VXmVrb1VYii11nXOp4UMclfwlN36Q+yHqWL/e68nB7LF SKB4KUHDgi+YI9cYQ3inwvxOHVJZIYKpA6UlmBiKJkndeZDeXAjvEVo9dTWrfFfyjkdba67lw== X-Received: by 2002:ac2:4f0f:0:b0:5aa:8822:b1ed with SMTP id 2adb3069b0e04-5ad4703895bmr509816e87.47.1781666519060; Tue, 16 Jun 2026 20:21:59 -0700 (PDT) MIME-Version: 1.0 From: Sohum Banerjea Date: Wed, 17 Jun 2026 13:21:23 +1000 X-Gm-Features: AVVi8CfggRz9v87SwIw19NZr5cWSKcsqRYQXQCoqbo-sOcvtw98ZOq_hibGbJtQ Message-ID: Subject: Suitability of postgres for high cardinality high volume usecase? To: pgsql-general@lists.postgresql.org Cc: Tim McEwan , Waseem Girach , guyren.howe@theclimateriskgroup.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hello, I am trying to determine the suitability of Postgres for a significant climate risk modelling project. We are batch processing a large (500 million) collection of geographical points. For each point, we store ~6 dimensions of various risks (total cardinality of several millions of floats per geographical point). We need to perform various ad-hoc aggregations on geographical subsets of the values associated with these points. These aggregations could require median/percentiles, so they won't be as simple as mean/sum, and we expect we may have to write custom aggregations for some cases. Because we may want to run computations that would use PostGIS features (certainly polygon containment; potentially others), and because our existing applications already use Postgres, we have some degree of preference to do this in Postgres. I'd like to know if anyone here has successfully built a system to run this sort of computation at this scale in Postgres. If so, what sort of schema design did you use? Columnar stores referencing spatially indexed row stores that contain the spatial references, sharded by geographical region? What sort of throughput did you achieve? I'm also interested in any general observations folks may have about this project. Perhaps we should use Clickhouse (for the main data) together with Postgres (for the GIS computations)? Perhaps our float dataset should live outside any kind of oltp/olap database at all? Something else? And finally, if you have developed a system like this, are you available to assist us with building this system on a consulting basis? Thanks in advance, =E2=80=94Sohum