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.

Info

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

Tip

Select only the columns you need and filter on dates: queries are faster and the output stays small enough for downstream nodes.

Warning

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.