# my_jobs_as_code

The 'my_jobs_as_code' project was generated by using the "Jobs as code" template.

## Prerequisites

1. Install Databricks CLI 0.238 or later.
   See [Install or update the Databricks CLI](https://docs.databricks.com/en/dev-tools/cli/install.html).

2. Install uv. See [Installing uv](https://docs.astral.sh/uv/getting-started/installation/).
   We use uv to create a virtual environment and install the required dependencies.

3. Authenticate to your Databricks workspace if you have not done so already:
    ```
    $ databricks configure
    ```

4. Optionally, install developer tools such as the Databricks extension for Visual Studio Code from
   https://docs.databricks.com/dev-tools/vscode-ext.html. Or read the "getting started" documentation for
   **Databricks Connect** for instructions on running the included Python code from a different IDE.

5. For documentation on the Databricks Asset Bundles format used
   for this project, and for CI/CD configuration, see
   https://docs.databricks.com/dev-tools/bundles/index.html.

## Deploy and run jobs

1. Create a new virtual environment and install the required dependencies:
    ```
    $ uv sync
    ```

2. To deploy the bundle to the development target:
    ```
    $ databricks bundle deploy --target dev
    ```

   *(Note that "dev" is the default target, so the `--target` parameter is optional here.)*

   This deploys everything that's defined for this project.
   For example, the default template would deploy a job called
   `[dev yourname] my_jobs_as_code_job` to your workspace.
   You can find that job by opening your workspace and clicking on **Workflows**.

3. Similarly, to deploy a production copy, type:
   ```
   $ databricks bundle deploy --target prod
   ```

   Note that the default job from the template has a schedule that runs every day
   (defined in resources/my_jobs_as_code_job.py). The schedule
   is paused when deploying in development mode (see [Databricks Asset Bundle deployment modes](
   https://docs.databricks.com/dev-tools/bundles/deployment-modes.html)).

4. To run a job:
   ```
   $ databricks bundle run
   ```
