GithubHelp home page GithubHelp logo

test-mass-forker-org-1 / delta-kusto Goto Github PK

View Code? Open in Web Editor NEW

This project forked from microsoft/delta-kusto

0.0 0.0 0.0 4.49 MB

Engine able to compute delta between ADX clusters (and/or Kusto scripts) and generate update scripts

License: MIT License

Shell 0.32% Python 0.36% C# 97.44% Bicep 1.88%

delta-kusto's Introduction

Continuous Build / Unit Test Exec tests

delta-kusto

Delta-Kusto

Delta-Kusto is a Command-line interface (CLI) enabling Continuous Integration / Continuous Deployment (CI / CD) automation with Kusto objects (e.g. tables, functions, policies, security roles, etc.) in Azure Data Explorer (ADX) databases. It can work on a single database, multiple databases, or an entire cluster. It also supports multi-tenant scenarios.

Delta-Kusto is doing what SQL Database projects do for Microsoft SQL: enabling CI/CD, change management and source control of Kusto databases. It works with and produces Kusto scripts so it doesn't require a new language / serialization format and can therefore be used with other tools of the ADX ecosystem.

Delta-Kusto runs on Linux, Mac OS & Windows as a stand-alone executable. It is meant to be used in headless mode.

Delta-Kusto works on database structure, not data:

  • Functions
  • Tables / Columns
  • Ingestion Mapping
  • Policies
  • Materialized Views
  • Security roles
  • External tables
  • Continuous Export

Documentations

See the documentation for details and tutorial section for different tutorials on Delta-Kusto.

Overview

The high-level view of delta-kusto is the following:

Overview diagram

The green boxes (current and target) represent sources. A source can be:

  • ADX Database
  • Kusto script

Delta-Kusto computes the delta between the two sources. The delta is a Kusto script containing the kusto commands required to take the current source and bring it to target source. The delta script can be exported as a stand alone file or as a folder hierarchy of scripts for easier readability and git-diff. It can also be applied to the current ADX Database.

Human validation often are required, especially if .drop commands are issued (to prevent unwanted data lost).

Scenarios / Flows

Using different combinations of sources can enable different scenarios:

Current Target Scenario Description
ADX Database Kusto scripts CI / CD scenario Push the state if a script set to an ADX database.
Kusto scripts ADX Database Determine gap between a script set and existing DB Computed Delta script shows what would need to be added to the script set to obtain the state of the target database.
Empty ADX Database Reverse engineer a database Special case of the previous scenario. The delta becomes the entire state of the target.
Kusto scripts Kusto scripts Offline sync Compute a delta between two script sets. No live databases needed.
ADX Database Kusto scripts Live Sync Find gap between two databases.

Limitations

The current release of Delta-Kusto includes functions, tables, ingestion mappings & the following policies:

  • Auto Delete
  • Caching
  • Ingestion Batching
  • Merge
  • Retention
  • Sharding
  • Update

See the list of issues for details on upcoming features and bugs found.

Alternatives

  • Sync Kusto - The Sync Kusto tool was built to help create a maintainable development process around Kusto.
  • Azure DevOps Task for Azure Data Explorer - Azure Pipelines task that enables you to create release pipelines and deploy your database changes to your Azure Data Explorer databases.

delta-kusto's People

Contributors

vplauzon 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.