MCPcopy Index your code
hub / github.com/apache/gobblin

github.com/apache/gobblin @release-0.17.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release release-0.17.0 ↗ · + Follow
23,288 symbols 111,580 edges 3,370 files 7,280 documented · 31%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Apache Gobblin

Build Status Documentation Status Maven Central Stack Overflow Join us on Slack codecov.io

Apache Gobblin is a highly scalable data management solution for structured and byte-oriented data in heterogeneous data ecosystems.

Capabilities

  • Ingestion and export of data from a variety of sources and sinks into and out of the data lake. Gobblin is optimized and designed for ELT patterns with inline transformations on ingest (small t).
  • Data Organization within the lake (e.g. compaction, partitioning, deduplication)
  • Lifecycle Management of data within the lake (e.g. data retention)
  • Compliance Management of data across the ecosystem (e.g. fine-grain data deletions)

Highlights

  • Battle tested at scale: Runs in production at petabyte-scale at companies like LinkedIn, PayPal, Verizon etc.
  • Feature rich: Supports task partitioning, state management for incremental processing, atomic data publishing, data quality checking, job scheduling, fault tolerance etc.
  • Supports stream and batch execution modes
  • Control Plane (Gobblin-as-a-service) supports programmatic triggering and orchestration of data plane operations.

Common Patterns used in production

  • Stream / Batch ingestion of Kafka to Data Lake (HDFS, S3, ADLS)
  • Bulk-loading serving stores from the Data Lake (e.g. HDFS -> Couchbase)
  • Support for data sync across Federated Data Lake (HDFS <-> HDFS, HDFS <-> S3, S3 <-> ADLS)
  • Integrate external vendor API-s (e.g. Salesforce, Dynamics etc.) with data store (HDFS, Couchbase etc)
  • Enforcing Data retention policies and GDPR deletion on HDFS / ADLS

Apache Gobblin is NOT

  • A general purpose data transformation engine like Spark or Flink. Gobblin can delegate complex-data processing tasks to Spark, Hive etc.
  • A data storage system like Apache Kafka or HDFS. Gobblin integrates with these systems as sources or sinks.
  • A general-purpose workflow execution system like Airflow, Azkaban, Dagster, Luigi.

Requirements

  • Java >= 1.8

If building the distribution with tests turned on: * Maven version 3.5.3

Instructions to download gradle wrapper

If you are going to build Gobblin from the source distribution, run the following command for downloading the gradle-wrapper.jar from Gobblin git repository to gradle/wrapper directory (replace GOBBLIN_VERSION in the URL with the version you downloaded).

wget --no-check-certificate -P gradle/wrapper https://github.com/apache/gobblin/raw/${GOBBLIN_VERSION}/gradle/wrapper/gradle-wrapper.jar

(or)

curl --insecure -L https://github.com/apache/gobblin/raw/${GOBBLIN_VERSION}/gradle/wrapper/gradle-wrapper.jar > gradle/wrapper/gradle-wrapper.jar

Alternatively, you can download it manually from: https://github.com/apache/gobblin/blob/${GOBBLIN_VERSION}/gradle/wrapper/gradle-wrapper.jar

Make sure that you download it to gradle/wrapper directory.

Instructions to run Apache RAT (Release Audit Tool)

  1. Extract the archive file to your local directory.
  2. Run ./gradlew rat. Report will be generated under build/rat/rat-report.html

Instructions to build the distribution

  1. Extract the archive file to your local directory.
  2. Skip tests and build the distribution: Run ./gradlew build -x findbugsMain -x test -x rat -x checkstyleMain The distribution will be created in build/gobblin-distribution/distributions directory. (or)
  3. Run tests and build the distribution (requires Maven): Run ./gradlew build The distribution will be created in build/gobblin-distribution/distributions directory.

Quick Links

Extension points exported contracts — how you extend this code

HelixMessageTestBase (Interface)
An interface for test classes that involve sending and receiving Helix messages. @author Yinan Li [6 implementers]
gobblin-cluster/src/test/java/org/apache/gobblin/cluster/HelixMessageTestBase.java
Limiter (Interface)
{@inheritDoc} @deprecated This class has been moved to org.apache.gobblin.util.limiter.Limiter. [10 implementers]
gobblin-runtime/src/main/java/org/apache/gobblin/runtime/Limiter.java
WriteResponseMapper (Interface)
An interface to implement a transformer from a system-native response type into a WriteResponse. @param <InnerTy [8 implementers]
gobblin-core-base/src/main/java/org/apache/gobblin/writer/WriteResponseMapper.java
CustomCodahaleReporterFactory (Interface)
BuilderFactory for custom ScheduledReporter. Implementations should have a parameter-less constructor. [7 implementers]
gobblin-metrics-libs/gobblin-metrics-base/src/main/java/org/apache/gobblin/metrics/CustomCodahaleReporterFactory.java
VersionSelectionPolicy (Interface)
Selection policy around versions of a dataset. Specifies which versions of a dataset will be selected. [8 implementers]
gobblin-data-management/src/main/java/org/apache/gobblin/data/management/policy/VersionSelectionPolicy.java
FlowGraphMonitor (Interface)
A service that listens to an external service or filesystem (Git, FS) to apply changes to the flowgraph without having t [7 …
gobblin-service/src/main/java/org/apache/gobblin/service/modules/flowgraph/FlowGraphMonitor.java
AuditSink (Interface)
An interface for persisting value audits [72 implementers]
gobblin-audit/src/main/java/org/apache/gobblin/audit/values/sink/AuditSink.java
CliApplication (Interface)
An application that can be called by GobblinCli. [185 implementers]
gobblin-utility/src/main/java/org/apache/gobblin/runtime/cli/CliApplication.java

Core symbols most depended-on inside this repo

get
called by 2936
gobblin-metastore/src/main/java/org/apache/gobblin/metastore/StateStore.java
toString
called by 2536
gobblin-runtime/src/main/java/org/apache/gobblin/runtime/api/GobblinInstancePlugin.java
add
called by 2117
gobblin-core/src/main/java/org/apache/gobblin/source/extractor/resultset/RecordSet.java
put
called by 1816
gobblin-metastore/src/main/java/org/apache/gobblin/metastore/StateStore.java
info
called by 1803
gobblin-metastore/src/main/java/org/apache/gobblin/metastore/util/DatabaseJobHistoryStoreSchemaManager.java
of
called by 1685
gobblin-api/src/main/java/org/apache/gobblin/writer/Destination.java
size
called by 1661
gobblin-iceberg/src/main/java/org/apache/gobblin/iceberg/Utils/IcebergUtils.java
setProp
called by 1538
gobblin-api/src/main/java/org/apache/gobblin/configuration/State.java

Shape

Method 18,818
Class 3,921
Interface 389
Enum 153
Function 7

Languages

Java100%
Python1%
TypeScript1%

Modules by API surface

gobblin-core/src/main/java/org/apache/gobblin/converter/avro/JsonElementConversionFactory.java85 symbols
gobblin-runtime/src/main/java/org/apache/gobblin/runtime/JobState.java72 symbols
gobblin-utility/src/main/java/org/apache/gobblin/util/filesystem/FileSystemDecorator.java71 symbols
gobblin-modules/gobblin-sql/src/main/java/org/apache/gobblin/source/jdbc/JdbcExtractor.java62 symbols
gobblin-runtime/src/main/java/org/apache/gobblin/runtime/job_exec/JobLauncherExecutionDriver.java61 symbols
gobblin-modules/gobblin-parquet/src/main/java/org/apache/gobblin/converter/parquet/JsonElementConversionFactory.java58 symbols
gobblin-modules/gobblin-parquet-apache/src/main/java/org/apache/gobblin/converter/parquet/JsonElementConversionFactory.java58 symbols
gobblin-compaction/src/main/java/org/apache/gobblin/compaction/mapreduce/MRCompactor.java55 symbols
gobblin-service/src/main/java/org/apache/gobblin/service/modules/orchestration/DagManager.java54 symbols
gobblin-compaction/src/main/java/org/apache/gobblin/compaction/dataset/Dataset.java54 symbols
gobblin-runtime/src/test/java/org/apache/gobblin/runtime/TaskTest.java53 symbols
gobblin-runtime/src/test/java/org/apache/gobblin/runtime/TestRecordStream.java52 symbols

Datastores touched

(mysql)Database · 1 repos
gobblinDatabase · 1 repos
gaas_dbDatabase · 1 repos

For agents

$ claude mcp add gobblin \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact