VOOZH about

URL: https://www.cdata.com/kb/tech/csv-odbc-nodejs.rst

⇱ Query CSV Data through ODBC in Node.js


Query CSV Data through ODBC in Node.js

👁 Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
Use node-odbc to execute SQL queries against CSV data from Node.js.

Node.js is a JavaScript runtime environment that allows you to run JavaScript code outside of a browser. With the CData ODBC Driver for CSV, you can access live CSV data from Node.js apps and scripts. In this article, we walk through installing node-odbc and the required tools to create a simple Node.js app with access to live CSV data.

With built-in optimized data processing, the CData ODBC Driver offers unmatched performance for interacting with live CSV data in Node.js. When you issue complex SQL queries from Node.js to CSV, the driver pushes supported SQL operations, like filters and aggregations, directly to CSV and utilizes the embedded SQL engine to process unsupported operations client-side (often SQL functions and JOIN operations).

Connecting to CSV Data

If you have not already done so, provide values for the required connection properties in the data source name (DSN). You can use the built-in Microsoft ODBC Data Source Administrator to configure the DSN. This is also the last step of the driver installation. See the "Getting Started" chapter in the help documentation for a guide to using the Microsoft ODBC Data Source Administrator to create and configure a DSN.

Connecting to Local or Cloud-Stored (Box, Google Drive, Amazon S3, SharePoint) CSV Files

CData Drivers let you work with CSV files stored locally and stored in cloud storage services like Box, Amazon S3, Google Drive, or SharePoint, right where they are.

Setting connection properties for local files

Set the URI property to local folder path.

Setting connection properties for files stored in Amazon S3

To connect to CSV file(s) within Amazon S3, set the URI property to the URI of the Bucket and Folder where the intended CSV files exist. In addition, at least set these properties:

  • AWSAccessKey: AWS Access Key (username)
  • AWSSecretKey: AWS Secret Key

Setting connection properties for files stored in Box

To connect to CSV file(s) within Box, set the URI property to the URI of the folder that includes the intended CSV file(s). Use the OAuth authentication method to connect to Box.

Dropbox

To connect to CSV file(s) within Dropbox, set the URI proprerty to the URI of the folder that includes the intended CSV file(s). Use the OAuth authentication method to connect to Dropbox. Either User Account or Service Account can be used to authenticate.

SharePoint Online (SOAP)

To connect to CSV file(s) within SharePoint with SOAP Schema, set the URI proprerty to the URI of the document library that includes the intended CSV file. Set User, Password, and StorageBaseURL.

SharePoint Online REST

To connect to CSV file(s) within SharePoint with REST Schema, set the URI proprerty to the URI of the document library that includes the intended CSV file. StorageBaseURL is optional. If not set, the driver will use the root drive. OAuth is used to authenticate.

Google Drive

To connect to CSV file(s) within Google Drive, set the URI property to the URI of the folder that includes the intended CSV file(s). Use the OAuth authentication method to connect and set InitiateOAuth to GETANDREFRESH.

Building node-odbc

In order to connect to CSV through the CData ODBC Driver, you need to build node-odbc manually (after installing the required tools).

Installing the Required Tools

The following commands install the tools required to build node-odbc (note the -g parameter, which installs the tools globally).

npm i -g windows-build-tools
npm i -g node-gyp

Building node-odbc

After installing the required tools, create a directory for the Node.js app and install odbc (which builds the binary for us to use in our Node.js script).

mkdir nodeodbc
cd nodeodbc
npm i -g node

Querying CSV from Node.js

With the ODBC Driver installed, a DSN Configured, and node-odbc built, we are ready to query live CSV data from a Node.js app. The sample code below connects to a specific DSN and queries the Customer table.

myscript.js

const odbc = require('odbc');

async function queryCSV() {
 const connection = await odbc.connect(`DSN=CData CSV Source`);
 const data = await connection.query('SELECT City, TotalDue FROM Customer');
 console.log(data);
}

queryCSV();

Once you write the app, use node to execute the script:

node myscript.js
👁 Sample program results (Salesforce is shown).

Download a free, 30-day trial of the CData ODBC Driver for CSV and start working with your live CSV data in Node.js. Reach out to our Support Team if you have any questions.

Ready to get started?

Download a free trial of the CSV ODBC Driver to get started:

 Download Now

Learn more:

👁 CSV/TSV Files Icon
CSV ODBC Driver

The CSV ODBC Driver is a powerful tool that allows you to connect with live flat-file delimited data (CSV/TSV files), directly from any applications that support ODBC connectivity.

Access flat-file data like you would any standard database - read, write, and update etc. through a standard ODBC Driver interface.