GithubHelp home page GithubHelp logo

global-localhost / spark-sql-deployment-manager Goto Github PK

View Code? Open in Web Editor NEW

This project forked from microsoft/spark-sql-deployment-manager

0.0 0.0 0.0 88 KB

This project aims to create a way to deploy spark sql tables using CI/CD and focus just on table schema changes rather than how to deploy the changes.

License: MIT License

Scala 100.00%

spark-sql-deployment-manager's Introduction

Build Status MIT License

Overview

  • Build and deploy a project with Spark SQL schema and tables incrementally.
  • Checks for syntax errors using Continuous Integration, preventing incorrect table schema from being merged to deployment branch.
  • Focus on table schema changes and use this project for the deployment.
  • This project currently supports azure data lake as storage source for delta tables and Databricks implementation of Spark.

How to use

Create a Spark Sql Project

  • Create a spark sql project which contains details about project files like Schema and Table scripts.
  • Add pre and post deployment scripts if needed. These scripts are Scala Notebooks. The Pre deployment and Post deployment notebooks should be executed before and after executing the deployment respectively.
  • Add Azure data lake path in values.json file.
  • Refer to the exampleSqlProject Spark SQL project as a starting point.

Building the Project

Features

  • Build will check for syntax errors in the project
  • Once the build succeeds, it will create a build artifact which can be used to deploy the changes ( by invoking DeploymentManager)

How to build

  • BuildSql project creates BuildSql.jar file.
  • Use BuildSql.jar like an executable to build spark sql project - Run the jar by passing .sparkSql project file as command line arguments.
  • Once the build succeeds, the build artifact can be found in bin folder created in project root directory.

Deploying the project

Features

  • Based on changes in the Spark SQL project file, it will create or modify tables and schemas
  • Currently Supports Delta table Deployment.
  • Executes Pre and Post Deployment Notebooks (used for one-time manual changes).

How to deploy

  • DeploymentManager project creates the DeploymentManager.jar file
  • Execute the DeploymentManager jar on the spark cluster by passing path to output.json (build artifact) as jar argument.
  • Execute Pre and Post Deployment Notebooks on the cluster before and after executing the DeploymentManager jar respectively.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

spark-sql-deployment-manager's People

Contributors

microsoftopensource avatar rajeshmprao avatar microsoft-github-operations[bot] avatar sahemant avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.