Destinations

Neon

Background

Neon is a serverless PostgreSQL solution designed for modern applications, offering high scalability and developer-friendly features. In a streaming ETL (Extract, Transform, Load) workflow, Neon serves as an efficient destination for transformed data, providing a robust platform for real-time storage, querying, and analytics. Its serverless architecture ensures cost-effectiveness and seamless scaling for dynamic workloads.

Setup

 

Settings

Neon has several settings which you will need to complete in order to send data to your Neon Database.

 

  • Connection String - You can retrieve this on your project dashboard. It should look something like: postgresql://admin:[email protected]/neondb?sslmode=require
  • Table: This is the table that you will be inserting into.

 

Column Map

Column map allows you to specify which data to insert into your table based on your payload.

As an example, lets assume your inbound payload (after standardization) looks like the following

{
  "anonymousId": "d2a3a775-51a1-4d85-b4d6-32bfe43dfa29",
  "channel": "web",
  "context": {
    "app": {
      "name": "Proxyhook Webhook SDK",
      "version": "1.7.0"
    },
    "os": {},
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
  },
  "event": "webhook",
  "messageId": "910df0f6-def2-4a22-8b77-b3d088fce92f",
  "originalTimestamp": "2024-04-18T22:14:58.294Z",
  "properties": {
    "name": "Jack",
    "age": 45,
    "favorite_food": "pizza"
  },
  "proxyHookID": "4531e96e-3de2-4c6c-bb46-836f4f4b90be",
  "sentAt": "2024-04-18T22:14:58.294Z",
  "type": "track"
}

And your table schema was generated with the following query

CREATE TABLE playing_with_proxyhook (id SERIAL PRIMARY KEY, name TEXT NOT NULL, age INT, favorite_food TEXT NOT NULL);