# Step-By-Step Guide

## Step 1: Install

Installation instructions for docker, as well as GitHub release, are [here](https://docs.zingg.ai/latest/stepbystep/installation). If you need to build from the sources or compile for a different flavor of Spark, check [compiling](https://docs.zingg.ai/latest/installation#compiling-from-sources).

## Step 2: Plan For Hardware

Decide your hardware based on the [performance numbers](https://docs.zingg.ai/latest/stepbystep/hardwaresizing).

## Step 3: Build The Config For Your Data

Zingg needs a configuration file that defines the data and what kind of matching is needed. You can create the configuration file by following the instructions [here](https://docs.zingg.ai/latest/stepbystep/configuration).

## Step 4: Create Training Data

Zingg builds a new set of models(blocking and similarity) for every new schema definition(columns and match types). This means running the *findTrainingData* and *label* phases multiple times to build the training dataset from which Zingg will learn. You can read more [here](https://docs.zingg.ai/latest/stepbystep/createtrainingdata).

## Step 5: Build & Save The Model

The training data in Step 4 above is used to train Zingg and build and save the models. This is done by running the *train* phase. Read more [here](https://docs.zingg.ai/latest/stepbystep/train).

## Step 6: Voila, Let's Match!

It's now time to apply the model to our data. This is done by running the *match* or the *link* phases depending on whether you are matching within a single source or linking multiple sources respectively. You can read more about [matching](https://docs.zingg.ai/latest/stepbystep/match) and [linking](https://docs.zingg.ai/latest/stepbystep/link).

As long as your input columns and the field types are not changing, the same model should work and you do not need to build a new model. If you change the match type, you can continue to use the training data and add more labeled pairs on top of it.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zingg.ai/latest/stepbystep.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
