Ready to get started?

Learn more about CData Cloud Hub or sign up for a free trial:

Learn More

Query Phoenix Data as a MySQL Database in Node.js

Execute MySQL queries against Phoenix data from Node.js.

You can use the CData Cloud Hub to query Phoenix data through a MySQL interface. Follow the procedure below to create a virtual database for Phoenix in the Cloud Hub and start querying using Node.js.

The CData Cloud Hub provides a pure MySQL, cloud-to-cloud interface for Phoenix, allowing you to easily query live Phoenix data in Node.js — without replicating the data to a natively supported database. As you query data in Node.js, the CData Cloud Hub pushes all supported SQL operations (filters, JOINs, etc) directly to Phoenix, leveraging server-side processing to quickly return Phoenix data.

Create a Virtual MySQL Database for Phoenix Data

CData Cloud Hub uses a straightforward, point-and-click interface to connect to data sources and generate APIs.

  1. Login to Cloud Hub and click Databases.
  2. Select "Phoenix" from Available Data Sources.
  3. Enter the necessary authentication properties to connect to Phoenix.

    Connect to Apache Phoenix via the Phoenix Query Server. Set the Server and Port (if different from the default port) properties to connect to Apache Phoenix. The Server property will typically be the host name or IP address of the server hosting Apache Phoenix.

    Authenticating to Apache Phoenix

    By default, no authentication will be used (plain). If authentication is configured for your server, set AuthScheme to NEGOTIATE and set the User and Password properties (if necessary) to authenticate through Kerberos.

  4. Click Test Database.
  5. Click Privileges -> Add and add the new user (or an existing user) with the appropriate permissions.

With the virtual database created, you are ready to connect to Phoenix data from any MySQL client.

Query Phoenix from Node.js

The following example shows how to define a connection and execute queries to Phoenix with the MySQL module. You will need the following information:

  • Host name, or address, and port: The address of your instance of the Cloud Hub (myinstance.cdatacloud.net) and the port (3306)
  • Username and password: The username and password of a user you authorized on the Cloud Hub
  • Database name: The database you configured for Phoenix (phoenixdb)

Connect to Phoenix data and start executing queries with the code below:

var mysql      = require('mysql');
var fs         = require('fs');
var connection = mysql.createConnection({
  host     : 'myinstance.cdatacloud.net',
  database : 'phoenixdb',
  port	   : '3306',
  user     : 'admin',
  password : 'password',
  ssl      : {
    ca : fs.readFileSync('C:/certs/myCA.pem')
  }
});
connection.connect();
connection.query('SELECT * FROM MyTable', function(err, rows, fields) {
  if (err) throw err;
  console.log(rows);
});

connection.end();