Skip to content
Node Client for Impala using Apache Thrift
Branch: master
Clone or download
ufukomer Merge pull request #22 from coderade/master
Update thrift package version to reduce vulnerabilities
Latest commit 6d82c7b Feb 25, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib New version update small fixes Feb 14, 2017
src New version update small fixes Feb 14, 2017
test New version update small fixes Feb 14, 2017
.babelrc Babel configuration Mar 16, 2016
.editorconfig New version update small fixes Feb 14, 2017
.eslintignore Update eslintignore Apr 13, 2016
.eslintrc New version update small fixes Feb 14, 2017
.gitignore New version update small fixes Feb 14, 2017
.npmignore Remove examples Feb 14, 2017
.travis.yml New version update small fixes Feb 14, 2017
gulpfile.babel.js Remove comma dangle Apr 11, 2016
index.js
license Rename LICENSE to license Mar 7, 2017
package.json fix: package.json to reduce vulnerabilities Feb 21, 2019
readme.md Added the example link Mar 17, 2017

readme.md

node-impala Build Status

Node client for Impala

Install

$ npm install --save node-impala

Usage

See the issue before using this module.

import { createClient } from 'node-impala';

const client = createClient();

client.connect({
  host: '127.0.0.1',
  port: 21000,
  resultType: 'json-array'
});

client.query('SELECT column_name FROM table_name')
  .then(result => console.log(result))
  .catch(err => console.error(err))
  .done(() => client.close().catch(err => console.error(err)));

Example

Bloomery: Web UI for Impala and uses this client to execute queries.

Options

host

Type: string
Default: '127.0.0.1'

If you are connecting Thrift Server remotely, such as connecting Cloudera from your host machine instead virtual machine, it corresponds to inet address of virtual machine that you can learn using ifconfig command in terminal. Otherwise, you should leave it as its default if you are connecting from virtual machine.

port

Type: number
Default: 21000

Default value corresponds to Impala Daemon Frontend Port which is used to transmit commands and receive results by Beeswax.

resultType

Type: string
Default: null

Returns result of query according to the given type.

Available variables:

  • json-array returns json array
  • map maps columns to rows
  • boolean returns true if query is successful
  • null returns results of query and table schemas as an array

timeout

Type: number
Default: 1000

Timeout value for closing transport after process finished.

API

createClient()

Creates client that uses BeeswaxService.

const client = createClient();

client.connect(props, callback)

Creates connection using given props.

client.connect({ resultType: 'boolean' })
  .then(message => console.log(message))
  .catch(error => console.error(error));

client.close(callback)

Closes the current connection.

client.close().catch((err) => console.error(err));

client.explain(sql, callback)

Gets the query plan for a query.

client.explain(sql)
  .then(explanation => console.log(explanation))
  .catch(err => console.error(err));

client.getResultsMetadata(sql, callback)

Gets the result metadata.

client.getResultsMetadata(sql)
  .then(metaData => console.log(metaData))
  .catch(err => console.error(err));

client.query(sql, callback)

Transmits SQL command and receives result via Beeswax Service asynchronously. Fetch size is fixed as 1024, namely, it returns the maximum 1024 results of a query.

client.query(sql)
  .then(results => console.log(results))
  .catch(err => console.error(err));

Versions

1.x.x and 2.x.x uses Impala chd5-2.1_5.3.0

License

MIT © Ömer Ufuk Efendioğlu

You can’t perform that action at this time.