Skip to content

Commit

Permalink
Merge pull request feast-dev#19 from farfetch-external/databricks_job…
Browse files Browse the repository at this point in the history
…_manager

Databricks job manager
  • Loading branch information
ff-mriko-morandi committed Jun 17, 2020
2 parents 76deb09 + 12b241b commit b999861
Show file tree
Hide file tree
Showing 30 changed files with 1,100 additions and 106 deletions.
5 changes: 5 additions & 0 deletions core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,11 @@
<artifactId>hibernate-validator-annotation-processor</artifactId>
<version>6.1.2.Final</version>
</dependency>
<dependency>
<groupId>dev.feast</groupId>
<artifactId>databricks-types</artifactId>
<version>${project.version}</version>
</dependency>

</dependencies>
</project>
11 changes: 11 additions & 0 deletions core/src/main/java/feast/core/config/JobConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,14 @@
import com.google.protobuf.util.JsonFormat;
import feast.core.config.FeastProperties.JobProperties;
import feast.core.job.JobManager;
import feast.core.job.databricks.DatabricksJobManager;
import feast.core.job.dataflow.DataflowJobManager;
import feast.core.job.direct.DirectJobRegistry;
import feast.core.job.direct.DirectRunnerJobManager;
import feast.proto.core.RunnerProto.DatabricksRunnerConfigOptions;
import feast.proto.core.RunnerProto.DataflowRunnerConfigOptions;
import feast.proto.core.RunnerProto.DirectRunnerConfigOptions;
import java.net.http.HttpClient;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -36,6 +39,7 @@
@Slf4j
@Configuration
public class JobConfig {

private final Gson gson = new Gson();

/**
Expand Down Expand Up @@ -67,6 +71,13 @@ public JobManager getJobManager(FeastProperties feastProperties)
JsonFormat.parser().merge(configJson, directRunnerConfigOptions);
return new DirectRunnerJobManager(
directRunnerConfigOptions.build(), new DirectJobRegistry(), metrics);
case DATABRICKS:
DatabricksRunnerConfigOptions.Builder databricksRunnerConfigOptions =
DatabricksRunnerConfigOptions.newBuilder();
JsonFormat.parser().merge(configJson, databricksRunnerConfigOptions);
return new DatabricksJobManager(
databricksRunnerConfigOptions.build(), HttpClient.newHttpClient());

default:
throw new IllegalArgumentException("Unsupported runner: " + runner);
}
Expand Down
1 change: 1 addition & 0 deletions core/src/main/java/feast/core/job/Runner.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
public enum Runner {
DATAFLOW("DataflowRunner"),
FLINK("FlinkRunner"),
DATABRICKS("DatabricksRunner"),
DIRECT("DirectRunner");

private final String humanName;
Expand Down
Loading

0 comments on commit b999861

Please sign in to comment.