# Delimited Serializer

The *Delimited Serializer* converts a structured data set into a single text stream with fields and records separated by delimiters or identified by text qualifiers. Serialized data with delimiters allows the sharing or storage of the data in a form that allows recovery of its original structure.

**Use Case**

In this case, we are using the *Customers* table from the *Northwind* database. You can download this sample data here:

{% file src="<https://750977703-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqHxyVNGb7tSdIWecl6Ru%2Fuploads%2Fgit-blob-83ae41ee5e46577077b2c6ba35dae82ef03bddc4%2FNorthwind.zip?alt=media>" %}

![](https://750977703-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqHxyVNGb7tSdIWecl6Ru%2Fuploads%2FqVuP6NUMz9AfVQjUfLAe%2F0.png?alt=media)

The source file contains the customers' contact information including their *ContactName*, *Address*, *PostalCode*, *Phone,* etc., in a structured format.

![](https://750977703-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqHxyVNGb7tSdIWecl6Ru%2Fuploads%2FvTn0XZlya9Q7sjc3lojQ%2F1.png?alt=media)

We want to convert the information contained in multiple fields into a single text stream separated by a delimiter.

## **Using the Delimited Serializer object**

1. To get the *Delimited Serializer* object, go to *Toolbox > Text Processors > Delimited Serializer* and drag and drop the object onto the designer.

![](https://750977703-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqHxyVNGb7tSdIWecl6Ru%2Fuploads%2FtDzWVk1gqsRvXN34w5YR%2F2.gif?alt=media)

You can see that the dragged object contains a *Text* field with an output port and an *Input* sub-node which is currently empty.

2. Auto-map source fields by dragging and dropping the top node of the source object, that is *Customers,* onto the *Input* node of the transformation object – *Delimited Serializer.*

![](https://750977703-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqHxyVNGb7tSdIWecl6Ru%2Fuploads%2FU2q0C7NV6tVLZwTnpmB2%2F3.png?alt=media)

3. Right-click on the object’s header and select *Properties*.

![](https://750977703-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqHxyVNGb7tSdIWecl6Ru%2Fuploads%2FZ4mElbNLjccsZwqPxG00%2F4.png?alt=media)

A configuration window will open as shown below.

![](https://750977703-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqHxyVNGb7tSdIWecl6Ru%2Fuploads%2FQ77kkmTg3dc94b8J360o%2F5.png?alt=media)

Let’s look at the properties on this window.

* *Field Delimiter* – Allows users to specify a delimiter for the source fields from the dropdown list.
* *Text Qualifier* – Allows users to specify qualifiers at the start and end of a text stream. In most cases, a text qualifier encloses an entire record.
* *Build Operation Type* – Contains two options in which a dataset can be serialized:
  * *One Record Per Input* – creates a single text record separated by delimiters for the entire data set
  * *One Record Per Transaction* – creates as many text records as the source file separated by only field delimiter.

<figure><img src="https://750977703-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqHxyVNGb7tSdIWecl6Ru%2Fuploads%2FAG1ciGcsN5sXjs1ewkCy%2Fimage.png?alt=media&#x26;token=d4af017e-d389-4fdb-98da-39acd100670b" alt=""><figcaption></figcaption></figure>

Let’s leave the properties as default, and click *OK*. The data has been serialized.

4. To preview the data, right-click on the *Delimited Serializer* object’s header and select *Preview Output* from the context menu.

![](https://750977703-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqHxyVNGb7tSdIWecl6Ru%2Fuploads%2FLxAMOuJVlhXE5ObkOKiR%2F7.png?alt=media)

A *Data Preview* window will open showing the serialized data with field delimiters:

<figure><img src="https://750977703-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqHxyVNGb7tSdIWecl6Ru%2Fuploads%2FeCDdld2pcDSYwDA6kJMg%2Fimage.png?alt=media&#x26;token=49e5d5e6-6835-4909-8722-acd760d8ebb8" alt=""><figcaption></figcaption></figure>

To store this serialized output, write it to a destination file or you can use this data further in the dataflow.
