Data Hub Reader
The Data Hub Reader node runs a SQL query on your organization's Data Hub tables and returns the rows as structured data, without any integration to configure.
What does the Data Hub Reader node do?
The Data Hub Reader node queries the tables of your organization’s Data Hub: the sources you load (Google Ads, Merchant Center, CSV…) and the tables built by your Data Hub pipelines. It works like the Google BigQuery Reader, with the same SQL editor and the same output, but needs no BigQuery integration: the query runs with your organization’s own Data Hub identity, which can only read your organization’s datasets.
The node is available only to organizations with Data Hub enabled. Contact your DNG administrator to activate it.
Common use cases:
- Reading a Google Ads or Merchant Center table loaded by Data Hub to analyze it with an LLM
- Looping over the rows of a pipeline output table to generate content per product
- Feeding a Data Hub aggregation (e.g. clicks by category) into a report
Quick setup
Add the node to the canvas
Find Data Hub Reader in the Integrations section of the node library and drop it on the canvas.
Write the SQL query
Open the SQL editor and click Tables to browse your Data Hub tables and views, the same list as in the Data Hub Explorer: switch location (EU, US), filter by name or by label, and click a table to insert its full name (for example `dng_org_123456789_eu.google_ads_campaigns`) at the cursor. Use Validate to check the query and Run test to preview the first rows.
Connect the output
Connect the output port to the next node. The rows are emitted as a JSON string, ready for a Loop, JSON Path Extractor, LLM or any other node.
Configuration parameters
Required fields
sql_query string required SQL Query — The BigQuery Standard SQL query to run on your Data Hub tables, referenced as dataset.table. Template variables like {{category}} are resolved at runtime from upstream node outputs.
SELECT campaign_name, SUM(clicks) AS clicks
FROM dng_org_123456789_eu.google_ads_campaigns
GROUP BY campaign_name
ORDER BY clicks DESC
LIMIT 100 What does the node output?
The node outputs the query results as a single JSON string containing the array of rows. Each row is an object whose keys are the column names returned by the query.
[
{ "campaign_name": "Brand FR", "clicks": "18250" },
{ "campaign_name": "Shopping FR", "clicks": "12034" }
]
columnsoutput string A JSON string containing the array of rows returned by the query. Column order and names match the SELECT clause.
Usage examples
Example 1: Weekly Google Ads summary
Configuration:
- SQL Query:
SELECT date, campaign_name, SUM(cost) AS cost, SUM(conversions) AS conversions FROM dng_org_123456789_eu.google_ads_campaigns WHERE date >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) GROUP BY date, campaign_name
Connect the output to an LLM node with a prompt like Summarize last week’s campaign performance from the JSON below.
Example 2: Generate content per product
Configuration:
- SQL Query:
SELECT offer_id, title, brand FROM dng_org_123456789_eu.merchant_products WHERE availability = 'in stock' LIMIT 500
Pipe the output into a Loop node, then into an LLM node that drafts a description per product.
Common issues
Data Hub is not enabled for this organization
Cause: Data Hub is not activated for your organization, or it was deactivated.
Solution: Contact your DNG administrator to activate Data Hub.
Access Denied on a table
Cause: The query references a dataset outside your organization’s Data Hub.
Solution: Only your organization’s Data Hub tables can be queried. Insert the table from the Tables panel of the SQL editor.
Table not found
Cause: The table name is misspelled, or the table belongs to the other location (EU vs US).
Solution: Insert the table from the Tables panel of the SQL editor; the dataset name carries the location (_eu, _us).
Only a SELECT query can run in this node
Cause: The query is not a single SELECT (for example DELETE, INSERT, CREATE TABLE or several statements separated by ;).
Solution: The node only reads data. Write a single SELECT; to transform tables, use a Data Hub pipeline.
The query returns more rows than the maximum of 20,000
Cause: The result has more than 20,000 rows.
Solution: Add LIMIT 20000, filter with WHERE, or aggregate with GROUP BY.
Best practices
Select only the columns you need and filter on dates: queries are faster and the output stays small enough for downstream nodes.
Read-only, 20,000 rows at most. Only a single SELECT runs: INSERT, UPDATE, DELETE, MERGE, DDL and multi-statement scripts are refused. A query returning more than 20,000 rows fails; add a LIMIT or narrow the WHERE clause.