How Large will a Table be - Kdb+ / qStudio

Home Forums Kdb+ / qStudio How Large will a Table be

Tagged: 

This topic contains 1 reply, has 2 voices, and was last updated by  Ryan Hamilton 5 years, 1 month ago.

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #110954

    Steve

    Wondering if there is some function of good method of estimating how much space a live table with varying types, and a varying number of rows will take once you save it.

    Is there a way to determine how much memory a table or object is currently using?
    So we can get an idea of what it’s size will be when written to disk.

    #110958

    -22! can be used to get the size of a table in memory, which will be very close to the on-disk space needed:
    q)-22!([] a:til 1000)
    8031
    q)-22!([] a:til 2000)
    16031
    q)`:/temp/a set ([] a:til 2000) / save to file
    `:/temp/a
    / hcount returns size of file on disk
    q)hcount `:/temp/a
    16025

    For the larger question of estimating database requirements:

    Notice in the data types table there’s a size column:
    http://www.timestored.com/kdb-guides/kdb-reference-card

    To estimate storage requirements:
    Design your tables and what columns they contain.
    Then for each table:
    1. Multiply the size in bytes for each type to get the number of bytes needed per row.
    2. Estimate the number of rows you will have now? 1 year from now? 2 years from now? As you want to be careful not just of the data size now but of of data growth rates.
    3. Multiply the estimated size of a row by the number of rows forecast. To get the space requirements for that one table.
    4. Total the values of all tables (and multiply by 1.5 for safety 🙂

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.