Applications can use this sample client Node.js driver to query Pinot.
This solution may not scale to meet performance and throughput requirements for your use case.
Integrate Pinot in Node.js applications
- Install axios.
- Contact StarTree Support to obtain the following information:
- Controller URL: The general format is
https://pinot.<random-string>.cp.s7e.startree.cloud
- Broker URL: The general format is
https://pinot.<random-string>.cp.s7e.startree.cloud
- AUTH_TOKEN
- Run the Node.js driver script:
queryPinot.js: Node.js driver script
const axios = require('axios');
// Pinot broker and controller URLs
const pinotBrokerUrl = '<Broker URL mentioned above>';
const pinotControllerUrl = '<Controller URL mentioned above>';
// Function to query Pinot broker
async function queryPinotBroker() {
try {
const response = await axios.post(`${pinotBrokerUrl}/query/sql`, {
// Add your SQL query here
sql: 'SELECT count(*) FROM <TABLE_NAME>,
}, {
headers: {
Authorization: 'Basic <AUTH_TOKEN>',
}
});
console.log('Query Result:', response.data);
} catch (error) {
console.error('Error querying Pinot broker:', error.message);
}
}
// Function to fetch Pinot table schema from controller
async function getPinotTableSchema(tableName) {
try {
const response = await axios.get(`${pinotControllerUrl}/tables/${tableName}/schema`, {
headers: {
Authorization: 'Basic <AUTH_TOKEN>',
}
});
console.log('Table Schema:', response.data);
} catch (error) {
console.error('Error fetching table schema:', error.message);
}
}
// Example usage
queryPinotBroker();
getPinotTableSchema('companies_v1');
Obtaining Username and Password
You can cenerate an API token in the Data Portal or using the REST API. Then, obtain the username and password from the service token
Th username and password are used to authorize your API requests.
Finding Your Broker URL
To find the correct Broker URL for your table in StarTree Cloud:
- Access the Data Portal.
- Click on Tables.
- Select the specific table you want to query.
- From the browser address bar, copy the URL to your Pinot cluster. For example, if the URL shown is
https://dp.1abcde6.cp.s7e.startree.cloud/tables, then the Broker URL for the table will be broker.pinot.1abcde6.cp.s7e.startree.cloud.