kafka_fdw

kafka_fdw

kafka_fdw : kafka Foreign Data Wrapper for CSV formatted messages

Overview

IDExtensionPackageVersionCategoryLicenseLanguage
8730
kafka_fdw
kafka_fdw
0.0.3
FDW
PostgreSQL
C
AttributeHas BinaryHas LibraryNeed LoadHas DDLRelocatableTrusted
--s-d-r
No
Yes
No
Yes
yes
no
Relationships
See Also
pgmq
mongo_fdw
redis_fdw
wrappers
multicorn
redis
hdfs_fdw
wal2json

Packages

TypeRepoVersionPG Major CompatibilityPackage PatternDependencies
EXT
PIGSTY
0.0.3
18
17
16
15
14
kafka_fdw-
RPM
PIGSTY
0.0.3
18
17
16
15
14
kafka_fdw_$v-
DEB
PIGSTY
0.0.3
18
17
16
15
14
postgresql-$v-kafka-fdw-
Linux / PGPG18PG17PG16PG15PG14
el8.x86_64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
el8.aarch64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
el9.x86_64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
el9.aarch64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
el10.x86_64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
el10.aarch64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
d12.x86_64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
d12.aarch64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
d13.x86_64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
d13.aarch64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
u22.x86_64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
u22.aarch64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
u24.x86_64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
u24.aarch64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PackageVersionOSORGSIZEFile URL
kafka_fdw_170.0.3el8.x86_64pigsty34.6 KiBkafka_fdw_17-0.0.3-2PIGSTY.el8.x86_64.rpm
kafka_fdw_170.0.3el8.aarch64pigsty33.4 KiBkafka_fdw_17-0.0.3-2PIGSTY.el8.aarch64.rpm
kafka_fdw_170.0.3el9.x86_64pigsty33.5 KiBkafka_fdw_17-0.0.3-2PIGSTY.el9.x86_64.rpm
kafka_fdw_170.0.3el9.aarch64pigsty33.0 KiBkafka_fdw_17-0.0.3-2PIGSTY.el9.aarch64.rpm
kafka_fdw_170.0.3el10.x86_64pigsty34.5 KiBkafka_fdw_17-0.0.3-2PIGSTY.el10.x86_64.rpm
kafka_fdw_170.0.3el10.aarch64pigsty33.9 KiBkafka_fdw_17-0.0.3-2PIGSTY.el10.aarch64.rpm
postgresql-17-kafka-fdw0.0.3d12.x86_64pigsty78.8 KiBpostgresql-17-kafka-fdw_0.0.3-2PIGSTY~bookworm_amd64.deb
postgresql-17-kafka-fdw0.0.3d12.aarch64pigsty76.6 KiBpostgresql-17-kafka-fdw_0.0.3-2PIGSTY~bookworm_arm64.deb
postgresql-17-kafka-fdw0.0.3d13.x86_64pigsty78.8 KiBpostgresql-17-kafka-fdw_0.0.3-2PIGSTY~trixie_amd64.deb
postgresql-17-kafka-fdw0.0.3d13.aarch64pigsty77.0 KiBpostgresql-17-kafka-fdw_0.0.3-2PIGSTY~trixie_arm64.deb
postgresql-17-kafka-fdw0.0.3u22.x86_64pigsty106.0 KiBpostgresql-17-kafka-fdw_0.0.3-2PIGSTY~jammy_amd64.deb
postgresql-17-kafka-fdw0.0.3u22.aarch64pigsty104.5 KiBpostgresql-17-kafka-fdw_0.0.3-2PIGSTY~jammy_arm64.deb
postgresql-17-kafka-fdw0.0.3u24.x86_64pigsty82.2 KiBpostgresql-17-kafka-fdw_0.0.3-2PIGSTY~noble_amd64.deb
postgresql-17-kafka-fdw0.0.3u24.aarch64pigsty80.9 KiBpostgresql-17-kafka-fdw_0.0.3-2PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
kafka_fdw_160.0.3el8.x86_64pigsty37.0 KiBkafka_fdw_16-0.0.3-2PIGSTY.el8.x86_64.rpm
kafka_fdw_160.0.3el8.x86_64pigsty35.1 KiBkafka_fdw_16-0.0.3-1PIGSTY.el8.x86_64.rpm
kafka_fdw_160.0.3el8.aarch64pigsty35.4 KiBkafka_fdw_16-0.0.3-2PIGSTY.el8.aarch64.rpm
kafka_fdw_160.0.3el8.aarch64pigsty33.2 KiBkafka_fdw_16-0.0.3-1PIGSTY.el8.aarch64.rpm
kafka_fdw_160.0.3el9.x86_64pigsty36.0 KiBkafka_fdw_16-0.0.3-2PIGSTY.el9.x86_64.rpm
kafka_fdw_160.0.3el9.x86_64pigsty35.3 KiBkafka_fdw_16-0.0.3-1PIGSTY.el9.x86_64.rpm
kafka_fdw_160.0.3el9.aarch64pigsty35.2 KiBkafka_fdw_16-0.0.3-2PIGSTY.el9.aarch64.rpm
kafka_fdw_160.0.3el9.aarch64pigsty34.4 KiBkafka_fdw_16-0.0.3-1PIGSTY.el9.aarch64.rpm
kafka_fdw_160.0.3el10.x86_64pigsty36.8 KiBkafka_fdw_16-0.0.3-2PIGSTY.el10.x86_64.rpm
kafka_fdw_160.0.3el10.aarch64pigsty36.1 KiBkafka_fdw_16-0.0.3-2PIGSTY.el10.aarch64.rpm
postgresql-16-kafka-fdw0.0.3d12.x86_64pigsty84.4 KiBpostgresql-16-kafka-fdw_0.0.3-2PIGSTY~bookworm_amd64.deb
postgresql-16-kafka-fdw0.0.3d12.aarch64pigsty81.9 KiBpostgresql-16-kafka-fdw_0.0.3-2PIGSTY~bookworm_arm64.deb
postgresql-16-kafka-fdw0.0.3d13.x86_64pigsty84.4 KiBpostgresql-16-kafka-fdw_0.0.3-2PIGSTY~trixie_amd64.deb
postgresql-16-kafka-fdw0.0.3d13.aarch64pigsty82.3 KiBpostgresql-16-kafka-fdw_0.0.3-2PIGSTY~trixie_arm64.deb
postgresql-16-kafka-fdw0.0.3u22.x86_64pigsty112.0 KiBpostgresql-16-kafka-fdw_0.0.3-2PIGSTY~jammy_amd64.deb
postgresql-16-kafka-fdw0.0.3u22.aarch64pigsty110.1 KiBpostgresql-16-kafka-fdw_0.0.3-2PIGSTY~jammy_arm64.deb
postgresql-16-kafka-fdw0.0.3u24.x86_64pigsty88.1 KiBpostgresql-16-kafka-fdw_0.0.3-2PIGSTY~noble_amd64.deb
postgresql-16-kafka-fdw0.0.3u24.aarch64pigsty86.9 KiBpostgresql-16-kafka-fdw_0.0.3-2PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
kafka_fdw_150.0.3el8.x86_64pigsty37.3 KiBkafka_fdw_15-0.0.3-2PIGSTY.el8.x86_64.rpm
kafka_fdw_150.0.3el8.x86_64pigsty35.4 KiBkafka_fdw_15-0.0.3-1PIGSTY.el8.x86_64.rpm
kafka_fdw_150.0.3el8.aarch64pigsty35.6 KiBkafka_fdw_15-0.0.3-2PIGSTY.el8.aarch64.rpm
kafka_fdw_150.0.3el8.aarch64pigsty33.4 KiBkafka_fdw_15-0.0.3-1PIGSTY.el8.aarch64.rpm
kafka_fdw_150.0.3el9.x86_64pigsty36.6 KiBkafka_fdw_15-0.0.3-2PIGSTY.el9.x86_64.rpm
kafka_fdw_150.0.3el9.x86_64pigsty36.1 KiBkafka_fdw_15-0.0.3-1PIGSTY.el9.x86_64.rpm
kafka_fdw_150.0.3el9.aarch64pigsty35.9 KiBkafka_fdw_15-0.0.3-2PIGSTY.el9.aarch64.rpm
kafka_fdw_150.0.3el9.aarch64pigsty35.1 KiBkafka_fdw_15-0.0.3-1PIGSTY.el9.aarch64.rpm
kafka_fdw_150.0.3el10.x86_64pigsty37.4 KiBkafka_fdw_15-0.0.3-2PIGSTY.el10.x86_64.rpm
kafka_fdw_150.0.3el10.aarch64pigsty36.8 KiBkafka_fdw_15-0.0.3-2PIGSTY.el10.aarch64.rpm
postgresql-15-kafka-fdw0.0.3d12.x86_64pigsty84.3 KiBpostgresql-15-kafka-fdw_0.0.3-2PIGSTY~bookworm_amd64.deb
postgresql-15-kafka-fdw0.0.3d12.aarch64pigsty81.8 KiBpostgresql-15-kafka-fdw_0.0.3-2PIGSTY~bookworm_arm64.deb
postgresql-15-kafka-fdw0.0.3d13.x86_64pigsty84.4 KiBpostgresql-15-kafka-fdw_0.0.3-2PIGSTY~trixie_amd64.deb
postgresql-15-kafka-fdw0.0.3d13.aarch64pigsty82.2 KiBpostgresql-15-kafka-fdw_0.0.3-2PIGSTY~trixie_arm64.deb
postgresql-15-kafka-fdw0.0.3u22.x86_64pigsty111.7 KiBpostgresql-15-kafka-fdw_0.0.3-2PIGSTY~jammy_amd64.deb
postgresql-15-kafka-fdw0.0.3u22.aarch64pigsty109.8 KiBpostgresql-15-kafka-fdw_0.0.3-2PIGSTY~jammy_arm64.deb
postgresql-15-kafka-fdw0.0.3u24.x86_64pigsty88.2 KiBpostgresql-15-kafka-fdw_0.0.3-2PIGSTY~noble_amd64.deb
postgresql-15-kafka-fdw0.0.3u24.aarch64pigsty87.0 KiBpostgresql-15-kafka-fdw_0.0.3-2PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
kafka_fdw_140.0.3el8.x86_64pigsty37.3 KiBkafka_fdw_14-0.0.3-2PIGSTY.el8.x86_64.rpm
kafka_fdw_140.0.3el8.x86_64pigsty35.4 KiBkafka_fdw_14-0.0.3-1PIGSTY.el8.x86_64.rpm
kafka_fdw_140.0.3el8.aarch64pigsty35.6 KiBkafka_fdw_14-0.0.3-2PIGSTY.el8.aarch64.rpm
kafka_fdw_140.0.3el8.aarch64pigsty33.4 KiBkafka_fdw_14-0.0.3-1PIGSTY.el8.aarch64.rpm
kafka_fdw_140.0.3el9.x86_64pigsty36.6 KiBkafka_fdw_14-0.0.3-2PIGSTY.el9.x86_64.rpm
kafka_fdw_140.0.3el9.x86_64pigsty36.1 KiBkafka_fdw_14-0.0.3-1PIGSTY.el9.x86_64.rpm
kafka_fdw_140.0.3el9.aarch64pigsty35.9 KiBkafka_fdw_14-0.0.3-2PIGSTY.el9.aarch64.rpm
kafka_fdw_140.0.3el9.aarch64pigsty35.0 KiBkafka_fdw_14-0.0.3-1PIGSTY.el9.aarch64.rpm
kafka_fdw_140.0.3el10.x86_64pigsty37.4 KiBkafka_fdw_14-0.0.3-2PIGSTY.el10.x86_64.rpm
kafka_fdw_140.0.3el10.aarch64pigsty36.9 KiBkafka_fdw_14-0.0.3-2PIGSTY.el10.aarch64.rpm
postgresql-14-kafka-fdw0.0.3d12.x86_64pigsty84.3 KiBpostgresql-14-kafka-fdw_0.0.3-2PIGSTY~bookworm_amd64.deb
postgresql-14-kafka-fdw0.0.3d12.aarch64pigsty81.6 KiBpostgresql-14-kafka-fdw_0.0.3-2PIGSTY~bookworm_arm64.deb
postgresql-14-kafka-fdw0.0.3d13.x86_64pigsty84.3 KiBpostgresql-14-kafka-fdw_0.0.3-2PIGSTY~trixie_amd64.deb
postgresql-14-kafka-fdw0.0.3d13.aarch64pigsty82.2 KiBpostgresql-14-kafka-fdw_0.0.3-2PIGSTY~trixie_arm64.deb
postgresql-14-kafka-fdw0.0.3u22.x86_64pigsty111.7 KiBpostgresql-14-kafka-fdw_0.0.3-2PIGSTY~jammy_amd64.deb
postgresql-14-kafka-fdw0.0.3u22.aarch64pigsty109.9 KiBpostgresql-14-kafka-fdw_0.0.3-2PIGSTY~jammy_arm64.deb
postgresql-14-kafka-fdw0.0.3u24.x86_64pigsty88.1 KiBpostgresql-14-kafka-fdw_0.0.3-2PIGSTY~noble_amd64.deb
postgresql-14-kafka-fdw0.0.3u24.aarch64pigsty86.9 KiBpostgresql-14-kafka-fdw_0.0.3-2PIGSTY~noble_arm64.deb

Source

pig build pkg kafka_fdw;		# build rpm/deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install kafka_fdw;		# install via package name, for the active PG version

pig install kafka_fdw -v 18;   # install for PG 18
pig install kafka_fdw -v 17;   # install for PG 17
pig install kafka_fdw -v 16;   # install for PG 16
pig install kafka_fdw -v 15;   # install for PG 15
pig install kafka_fdw -v 14;   # install for PG 14

Create this extension with:

CREATE EXTENSION kafka_fdw;

Usage

kafka_fdw: Kafka Foreign Data Wrapper for CSV formatted messages

Create Server

CREATE EXTENSION kafka_fdw;

CREATE SERVER kafka_server FOREIGN DATA WRAPPER kafka_fdw
  OPTIONS (brokers 'localhost:9092');

Server Options: brokers (required, comma-separated Kafka broker endpoints).

Create User Mapping

CREATE USER MAPPING FOR PUBLIC SERVER kafka_server;

Create Foreign Table (CSV Format)

CREATE FOREIGN TABLE kafka_csv (
  part int OPTIONS (partition 'true'),
  offs bigint OPTIONS (offset 'true'),
  some_int int,
  some_text text,
  some_date date,
  some_time timestamp
)
SERVER kafka_server
OPTIONS (format 'csv', topic 'my_topic', batch_size '30', buffer_delay '100');

Two metadata columns are required: one with partition 'true' and one with offset 'true'. The remaining columns match the message format.

Table Options: format (csv or json), topic (Kafka topic name), batch_size, buffer_delay (milliseconds), strict (enforce strict schema validation), ignore_junk (set malformed columns to NULL).

Create Foreign Table (JSON Format)

CREATE FOREIGN TABLE kafka_json (
  part int OPTIONS (partition 'true'),
  offs bigint OPTIONS (offset 'true'),
  some_int int OPTIONS (json 'int_val'),
  some_text text OPTIONS (json 'text_val')
)
SERVER kafka_server
OPTIONS (format 'json', topic 'my_json_topic', batch_size '30', buffer_delay '100');

Use the json column option to map column names to JSON keys.

Consuming Messages

-- Read from a specific partition and offset
SELECT * FROM kafka_csv WHERE part = 0 AND offs > 1000 LIMIT 60;

-- Read from multiple partitions
SELECT * FROM kafka_csv
WHERE (part = 0 AND offs > 100) OR (part = 1 AND offs > 300);

Note: The offset keyword is reserved in SQL; use double quotes when referencing the offset column in some contexts.

Producing Messages

-- Insert with explicit partition
INSERT INTO kafka_csv (part, some_int, some_text)
  VALUES (0, 42, 'hello from partition 0');

-- Insert with auto-partition selection
INSERT INTO kafka_csv (some_int, some_text)
  VALUES (42, 'auto-partitioned message');
Last updated on