Explore more topics
Market-data lake

lake.index_constituents dataset schema

Column types and research semantics for NexusTrade’s lake.index_constituents dataset. Read the supported schema before submitting a bounded SQL query.

Query name
lake.index_constituents
Storage partition
snapshot
Columns
10
Jump to a section

Columns and types

VARCHAR

  • indexCode
  • indexName
  • componentCode
  • componentName
  • sector
  • industry

DOUBLE

  • weight

TIMESTAMP

  • startDate
  • endDate

BOOLEAN

  • isActive

Current logical schema for lake.index_constituents

Inspect the complete lake.index_constituents schema

Scroll sideways to compare all columns. Select a heading to sort.

indexCodeVARCHAR
indexNameVARCHAR
componentCodeVARCHAR
componentNameVARCHAR
sectorVARCHAR
industryVARCHAR
weightDOUBLE
startDateTIMESTAMP
endDateTIMESTAMP
isActiveBOOLEAN

Current logical schema for lake.index_constituents

Query lake.index_constituents using the column names and types below. The query validator and engine use this logical catalog; a field absent from an older shard returns typed NULL.

What this table contains

Membership of major indices; the only source of GICS-style sector and industry strings.

Inspect S&P 500 membership records

Query example, not executed here. The dates and filters define the proposed research scope; returned rows and current coverage must be checked in your workspace.

componentCode supplies the join ticker; componentName is its display name. Inspect the membership span and status rather than treating this limited preview as a historical point-in-time universe.

SQL
SELECT indexCode, componentCode, componentName, sector, industry,
       startDate, endDate, isActive
FROM lake.index_constituents
WHERE indexCode = 'GSPC'
ORDER BY componentCode, startDate
LIMIT 20;

Submit the index_constituents example and read back its parts

Run the exact SQL through the Python SDK

Save this page's SQL as query.sql and the runner below as query.py. Use a registered key with lake scope from Developers. The runner submits the displayed index_constituents query once, saves its operation, waits on that same ID, saves the returned manifest and downloads its Parquet parts.

This submission has not been executed for the reference page. Inspect the SQL, dates and resource limits before running it. Reuse the request key only for this identical SQL and limits; use a new key when changing them.

Shell
python3 -m pip install nexustrade==1.42.0
export NEXUSTRADE_API_KEY="YOUR_LAKE_SCOPED_KEY"
python3 query.py

Python
import json
from pathlib import Path
from nexustrade import NexusTradeClient

# Save the SQL displayed on this page as query.sql.
sql = Path("query.sql").read_text()
client = NexusTradeClient.from_environment()
operation = client.create_lake_query(
    {"query": sql, "limits": {"timeoutSeconds": 30, "maxRows": 50,
                              "maxResultBytes": 1048576}},
    idempotency_key="reference-index_constituents-20261012-v1",
)
Path("query-operation.json").write_text(json.dumps(operation, indent=2))
finished = client.wait_for_lake_query(operation["id"])
if finished["status"] != "completed":
    raise RuntimeError(finished)
manifest = client.get_lake_query_manifest(operation["id"])["result"]
Path("query-manifest.json").write_text(json.dumps(manifest, indent=2))
print(json.dumps(manifest, indent=2))
for part in manifest["parts"]:
    Path(f"query-{part['part']}.parquet").write_bytes(
        client.download_lake_query_part(operation["id"], part["part"], max_bytes=1048576)
    )

Coverage and timing

Inspect source coverage and timing before using the rows

Membership of major indices; the only source of GICS-style sector and industry strings.

Filter an index with `indexCode` (`'GSPC'` for the S&P 500). `componentCode` is the ticker to join on and `componentName` is the display name. This is the only table with GICS-style `sector` / `industry` labels — `stock_industries` carries boolean theme tags instead, and the SEC statement tables carry neither.

Discussion

Sign in or create a free account to join the discussion.

No comments yet.