Azure MySQL

Azure MySQL Database is an easy to set up, operate, and scale fully managed database service from Microsoft. It can automate your database management and maintenance, including routine updates, backups and security, enabling you to focusing on working with your data.

You can ingest data from your Azure MySQL database using Hevo Pipelines and replicate it to a Destination of your choice.

Prerequisites


Perform the following steps to configure your Azure MySQL Source:

Create a Read Replica (Optional)

To use an existing read-replica or connect Hevo to your master database, skip to Set up MySQL Binary Logs for Replication section.

Note: In order to create a Azure MySQL read-replica instance, your master instance must be a Flexible server.

To create a read-replica:

  1. Log in to the Azure Portal.

  2. Under Resources, select the database for which you want to create a read-replica.

    Select database

  3. In the left navigation pane, under Settings, click Replication, and then, click + Add Replica.

    Click Add Replica

  4. In the Flexible server replica page, specify the Server name, the Pricing tier, and then, click OK to create a read-replica.

    Specify name

A notification is displayed to confirm that the read-replica was created successfully.


Set up MySQL Binary Logs for Replication

Hevo supports data ingestion from the MySQL database instance via binary logs (BinLog). A binary log is a collection of log files that records information about data modifications and data object modifications made on a MySQL database instance. Typically, binary logs are used for data replication and data recovery.

By default, Row-based BinLog Replication in Azure MySQL. To change this to capture the entire data:

  1. Access your Microsoft Azure MySQL instance.

    Microsoft Azure login

  2. Under Settings, click Server Parameters.

  3. Update the values of the parameters as follows:

    Parameter Name Value
    binlog_row_image FULL
    binlog_expire_logs_seconds A value greater than or equal to 259200 (three days).

    Log parameters

  4. Click Save.

  5. Confirm under Notifications that your changes have been applied and the instance has restarted successfully before running the Pipeline, to avoid errors.

    Notifications


Whitelist Hevo’s IP Addresses

You need to whitelist the Hevo IP addresses for your region to enable Hevo to connect to your Microsot Azure MySQL database. You can do this by creating firewall rules in your Microsoft Azure database settings as follows:

  1. Access your Microsoft Azure MySQL instance.

  2. Under Resources, select the database you want to synchronize with Hevo.

    mySQL db

  3. Under Settings, click Connection security.

  4. Create a Firewall Rule:

    1. Specify a Firewall Rule Name.

    2. Specify Hevo’s IP addresses in the Start IP and End IP fields as per your region.

      Note: As Hevo has specific IP addresses and not a range, the value in Start IP and End IP fields is the same.

      firewall rules

    3. Click Save to save the rule.

    4. Repeat this step to add the IP address for each applicable Hevo region.


Create a Database User and Grant Privileges

1. Create a database user (optional)

To create a user, open your Azure MySQL database in your SQL client tool and enter the following commands:

CREATE USER 'hevo'@'%' IDENTIFIED BY '<password>';

Note: Replace password above with a password of your choice.

2. Grant privileges to a user

The database user specified in the Hevo Pipeline must have the SELECT and REPLICATION global privileges:

To set these up, open your Azure MySQL database in your SQL client tool like SQL Workbench or the MySQL command line, and then, run the command:

GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'username'; # to grant privileges to a user with <username> as username

Note: The REPLICATION SLAVE privilege is required only if you are connecting a read replica. When it is granted to the authenticating user, updates received by a replica server from a source server are logged to the replica’s own binary log.


Retrieve the Hostname and Port Number (Optional)

Note: The Azure MySQL hostnames start with your database name and end with windows.net.
For example:
Host : mysql.database.windows.net
Port : 3306

To retrieve the hostname:

  1. Log in to the Microsoft Azure Portal.

  2. Under Resources, select your Azure database for MySQL server.

  3. Under Essentials panel, locate the Server name. Use this Server name as the hostname in Hevo while creating your Pipeline.

    Retrieve hostname

The default port value is 3306.


Specify Azure MySQL Connection Settings

Specify the following settings in the Configure your Azure MySQL Source page:

  • Pipeline Name: A unique name for your Pipeline.

  • Database Host: The MySQL host’s IP address or DNS.

    The following table lists a few examples of MySQL host:

    Variant Host
    Amazon RDS MySQL mysql-rds-1.xxxxx.rds.amazonaws.com
    Azure MySQL mysql.database.windows.net
    Generic MySQL 10.123.10.001 or mysql-replica.westeros.inc
    Google Cloud MySQL 35.220.150.0

    Note: For URL-based hostnames, exclude the http:// or https:// part. For example, if the hostname URL is http://mysql-replica.westeros.inc, enter mysql-replica.westeros.inc.

  • Database Port: The port on which your MySQL server is listening for connections. Default value: 3306.

  • Database User: The authenticated user that can read the tables in your database.

  • Database Password: Password for the database user.

  • Database Name: The database you want to load data from, if the Pipeline mode is Table or Custom SQL.

  • Connection Settings

    • Connect through SSH: Enable this option to connect to Hevo using an SSH tunnel, instead of directly connecting your MySQL database host to Hevo. This provides an additional level of security to your database by not exposing your MySQL setup to the public. Read Connecting Through SSH.

      If this option is disabled, you must whitelist Hevo’s IP addresses. Refer to the content for your MySQL variant for steps to do this.

    • Use SSL: Enable it to use SSL encrypted connection. To enable this, specify the following:

      • CA File: The file containing the SSL server certificate authority (CA).

      • Client Certificate: The client public key certificate file.

      • Client Key: The client private key file.

  • Advanced Settings (for Pipelines with BinLog mode)

    • Load All Databases: Applicable for Pipelines with BinLog mode. If this option is enabled, Hevo loads the data from all databases on the selected host. Else, specify a comma-separated list of Database Names you want to load data from.

    • Load Historical Data: Applicable for Pipelines with BinLog mode. If this option is enabled, the entire table data is fetched during the first run of the Pipeline. If disabled, Hevo loads only the data that was written in your database after the time of creation of the Pipeline.

    • Merge Tables: Applicable for Pipelines with BinLog mode. If this option is enabled, Hevo merges tables with the same name from different databases while loading the data to the warehouse. Hevo loads the Database Name field with each record. If disabled, the database name is prefixed to each table name. Read How does the Merge Tables feature work?.

    • Include New Tables in the Pipeline: Applicable for all Pipeline modes except Custom SQL. If enabled, Hevo automatically ingests data from tables created after the Pipeline has been built. If disabled, the new tables are listed in the Pipeline Detailed View in Skipped state, and you can manually include the ones you want and load their historical data.

  • Click TEST & CONTINUE to proceed for setting up the Destination.


Limitations

  • Logging in using SSL not supported. This setting is enabled by default. You can disable it as follows:

    Disable SSL

    1. Under Settings, click Connection security.

    2. In SSL Settings on the right, set the toggle option for Enforce SSL connection to DISABLED.

    3. Click Save.

  • Hevo only fetches tables from the MySQL database. It does not fetch other entities such as functions, stored procedures, views, and triggers.

    To fetch views, you can create individual Pipelines in Custom SQL mode. However, some limitations may arise based on the type of data synchronization, the query mode, or the number of Events. Contact Hevo Support for more details.


Revision History

Refer to the following table for the list of key updates made to this page:

Date Release No. Description of Change
Aug-09-2021 NA Added a note in the Grant privileges to a user step.
Jul-26-2021 1.68 Added a note for the Database Host field.
Jul-12-2021 NA Added section, Specify Azure MySQL Connection Settings.
Feb-22-2021 1.57 Updated the Create a Read Replica section to provide UI-based steps.
Last updated on 19 Aug 2021