New Data Apps Project

New Project

New data apps project from template can be created by running the following command

#Example 1:
$ rlabs new -vv data-apps-leadscoring -t "Lead Scoring" -o ~/Projects

#Example 2:
$ rlabs new -vv data-apps-attribution --title "User Attribution" --output-dir ~/Projects

Note

Params:
  • -t, --title: Project title. The project title should be a few words only. It will appear at the description of your project and as the title of your documentation [default: New project]

  • -o, --output-dir: Output directory where the project will be created. this directory must not exist before creating the project.

Note

All rudderlabs.data.apps package scripts comes with custom verbose levels.

  • -v, --verbose: Increase the verbosity level from 0 (only error messages) to 1 (warnings), 2 (infomessages), 3 (debug information) by adding the –verbose option as often as desired (e.g. ‘-vvv’ for debug).

Folder Structure

Intiall project folder structure

data-apps-sample
 ├── conda
   └── environment.yml
 ├── config
   └── sample.yaml
 ├── credentials_template.yaml
 ├── data
 ├── data_loader.py
 ├── __init__.py
 ├── notebooks
   └── sample_notebook.ipynb
   └── __init__.py
 ├── pipelines
   └── sample_pipeline.yaml
 ├── README.md
 ├── requirements.txt
 ├── run_notebook_wrapper.py

Pipeline Configuration

Data apps project requires multiple of data processing steps to achieve desired output. This can be provided writing pipeline configuration files, where user can specify the pipeline steps and their parameters.

Sample pipeline configuration file

#Pipeline steps to be executed
pipeline:
  #Name should satisfy ^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}
  - name: "sample-step"
    job_suffix: "S"
    #Entry point for the sagemaker job
    code: "run_notebook_wrapper.py"
    #location of input data to be passed for processing it
    #can be relative to repository or absolute path
    input_data: "data/<job_id>"
    #Once the process is done
    #sagemaker output data will gets downloaded here
    output_path: "data"
    #These params will get passed to `code` script as command line arguments
    params:
      --notebook-path: "notebooks/sample_notebook.ipynb"
      --train-id: "1"
#Folders to exclude while compresing source code for sagemaker job
exclude_folders:
  - "data"
#Files to exclude while compressing source code for sagemaker job
exclude_files:
  - "*.gitignore"

Note

<job_id> will get replaced by actual job ID. while running the pipeline step.