<@U0A71G31CDV> when querying `information_schema.t...
# questions-and-troubleshooting
j
@Rocky when querying
information_schema.tables
there are tables that doesnt have information even if they are populated already.
r
It sounds like you're encountering a situation where
information_schema.tables
shows empty or zeroed-out values (like
TABLE_ROWS
or
DATA_LENGTH
) for tables that you know contain data. Here are the most common reasons why this happens in StarRocks: 1. Catalog Context (Internal vs. External) Starting from StarRocks v3.0, the system uses a multi-catalog architecture. * The Default Behavior: By default,
information_schema.tables
queries information for the current catalog you are in (usually
default_catalog
for internal StarRocks tables). * External Catalogs: If your tables are in an external catalog (like Hive, Iceberg, or JDBC), they will not appear in the
information_schema.tables
of the
default_catalog
. * Solution: Since v3.2.0, StarRocks supports
information_schema
for external catalogs. To see data for an external catalog, you should switch to it first:
Copy code
sql
    SET CATALOG <external_catalog_name>;
    SELECT * FROM information_schema.tables;
2. User Privileges StarRocks filters the results of
information_schema
based on user permissions. * If your user does not have at least
SELECT
or
USAGE
privileges on a specific table, that table may be excluded from the results or return
NULL
for certain fields. * Solution: Ensure the user has the necessary permissions:
Copy code
sql
    GRANT SELECT ON ALL TABLES IN DATABASE <db_name> TO USER <user_identity>;
3. External Table Metadata For External Tables (the older style) or External Catalogs, metadata like
TABLE_ROWS
and
DATA_LENGTH
is often not updated automatically in real-time because StarRocks doesn't "own" the storage. * These values may remain
0
or
NULL
until statistics are collected. * Solution: Try running an
ANALYZE
command on the table to populate the statistics:
Copy code
sql
    ANALYZE TABLE <table_name>;
4. Metadata Sync Latency (Internal Tables) For internal StarRocks tables,
TABLE_ROWS
and
DATA_LENGTH
are aggregated from the tablet information reported by the BEs (Backend nodes) to the FE (Frontend). * While this is usually very fast, there can be a slight delay immediately after a massive load. * Note: If you are using Primary Key tables, the row count reflected in
information_schema
might occasionally differ from a
COUNT(*)
because it represents the raw storage state before all deletions/updates are fully compacted in the background. 5.
information_schema.tables
vs
SHOW TABLE STATUS
In some older versions of StarRocks,
SHOW TABLE STATUS
might reflect metadata differently than the
information_schema.tables
view. * Try: Running
SHOW TABLE STATUS FROM <db_name> LIKE '<table_name>';
to see if the information appears there. Recommendation: To give you a more specific answer, could you check: 1. Which version of StarRocks are you using? 2. Is the table an internal table or from an external catalog? 3. Does the user have full privileges on that database? Referencessql-reference/information_schema/tables.mdsql-reference/information_schema/statistics.mdsql-reference/information_schema/columns.mdsql-reference/information_schema/information_schema.md
r
It doesn't show up immediately. Give it couple minutes
1