# Embulk Bulk Import From MySQL

This article explains how to import data from MySQL database to Treasure Data using embulk-input-mysql input plugin.

## Prerequisites

- Basic knowledge of Treasure Data.
- Basic knowledge of [Embulk](http://www.embulk.org/docs/).
- Embulk is a Java application. Make sure that Java is installed.
- Follow the instructions in [Installing Bulk Data Import](https://docs.treasuredata.com/smart/project-product-documentation/installing-bulk-data-import).
- [Embulk and embulk-output-td plugin](http://www.embulk.org/docs/) installed on your machine.


## Install embulk-input-mysql Plugin

To install embulk-input-mysql plugin, run the following command:


```bash
embulk gem install embulk-input-mysql
```

## Create a Seed Configuration File

Using your favorite text editor, create Embulk config file (for eg:seed.yml) defining input(MySQL) and output(TD) parameters. Example:


```yaml
in:
  type: mysql
  host: localhost
  port: 3306
  user: username
  password: password
  database: mysql_db
  table: my_table
  select: 'col1, col2, datecolumn'
  where: col4 != 'a'
out:
  type: td
  apikey: xxxxxxxxxxxx
  endpoint: api.treasuredata.com
  database: dbname
  table: tblname
  time_column: datecolumn
  mode: replace
  default_timestamp_format: '%d/%m/%Y'
```

For further details about additional parameters and other examples are available, refer [Embulk Input MySQL](https://github.com/embulk/embulk-input-jdbc/tree/master/embulk-input-mysql).

## Guess Fields (Generate load.yml)

Embulk guess option uses `seed.yml` to read the target file and automatically guesses the column types/settings and creates a new file `load.yml` with this information.


```bash
embulk guess seed.yml -o load.yml
```

You can preview the data using `embulk preview load.yml` command. If any of the column types or data seems incorrect you may edit `load.yml` file directly and preview again to verify. If `guess` option doesn’t yield satisfactory results, you may change parameters in `load.yml` according to your requirement.

# Execute Load Job

Issue the import job by running the following command:


```bash
embulk run load.yml
```

It may take few mins to hours for the job to complete, depending on the size of the data.