Connector July 16, 2026 5 min read

New Connector: Apache Iceberg Repository Connector for OpenCrawling

OpenCrawling now supports Apache Iceberg data lakes as a first-class ingestion source. The new oc-iceberg-repository-connector module scans Iceberg table catalogs (REST, Hive, Hadoop, AWS Glue) and streams structured records directly into the RAG pipeline using Java 25 Virtual Threads and Structured Task Scope — making your data lakehouse AI-ready in minutes.


1. Bridging Enterprise Data Lakehouses to AI

Apache Iceberg has emerged as the open table format standard for modern data lakehouses, enabling ACID transactions, time travel, and schema evolution over massive petabyte-scale Parquet datasets stored in S3 or HDFS.

However, bridging table data into Retrieval-Augmented Generation (RAG) and vector search pipelines has historically required custom Spark or Flink jobs. With the oc-iceberg-repository-connector, OpenCrawling connects directly to your Iceberg catalogs, scans Parquet data files concurrently, and converts records into standard RepositoryDocument streams with zero intermediate data copies.

💡

Supported Catalogs: Full native support for REST Catalog, Hive Metastore Catalog, Hadoop Catalog, AWS Glue Catalog, and In-Memory Catalogs.

2. Architecture & Concurrent Scanning

The connector implements the standard RepositoryConnector interface. During a scan, it plans FileScanTasks over the target table schema and forks task execution across Java 25 Virtual Threads managed by StructuredTaskScope:

Apache Iceberg Ingestion Flow
Iceberg Catalog
REST / Hive / Glue
IcebergRepositoryConnector
Java 25 Virtual Threads
Kafka Topic
opencrawling-ingestion
IngestionConsumer
Token Chunker
EmbeddingConsumer
Ollama / OpenAI
PGVector
vector_store_1024

3. Configuration & Constructor Parameters

The IcebergRepositoryConnector can be configured via Java properties or Spring environment settings:

// Example Java initialization connecting to a REST Catalog
IcebergRepositoryConnector connector = new IcebergRepositoryConnector(
    "rest",                             // catalogType: rest, hive, hadoop, glue, in-memory
    "http://iceberg-rest:8181",         // catalogUri
    "s3://warehouse-bucket/iceberg",    // warehouse location
    "id"                                // idColumn (optional primary key column)
);

Catalog Support Matrix

Catalog Type Catalog URI Example Description
rest http://iceberg-rest:8181 Apache Iceberg REST Catalog server endpoint
hive thrift://hive-metastore:9083 Apache Hive Metastore Catalog connector
hadoop hdfs://namenode:8020/warehouse HDFS / File-system based Hadoop catalog
glue aws:glue:us-east-1 AWS Glue Data Catalog integration
in-memory N/A Local test catalog for mock unit testing

4. Document Identifiers & URI Scheme

Each table record is serialized into a RepositoryDocument carrying a uniform URI identifier format:

iceberg://<table-identifier>/<document-id>

Document IDs are deterministically resolved in the following priority order:

  1. Explicit primary key column value passed via idColumn.
  2. Composite keys constructed from Iceberg schema identifierFieldNames().
  3. SHA-256 fingerprint hash generated automatically from record JSON payload bytes.

Source Code: Check out the source code module on GitHub under oc-iceberg-repository-connector.

Ready to Connect Your Data Lakehouse?

Explore the source code, configure your Iceberg catalog endpoint, and start streaming structured records directly to vector databases.