| 1 | [[PageOutline]] |
| 2 | = Tiling and Indexes in rasdaman = |
| 3 | |
| 4 | When an array is inserted into rasdaman, instead of storing the whole array as it is, rasdaman first partitions it into smaller sub-arrays (''tiles'') and then stores them. I.e. the storage unit in rasdaman is '''tile''', representing some part of the whole array. In order to provide quick access to the right tiles when an array is sliced/subset in a selection query, the tiles are indexed by specific index structures. |
| 5 | |
| 6 | With the [attachment:wiki:FAQ:sstdm2010.pdf storage layout language extension], rasql provides a flexible way to specify how exactly an array should be split into tiles when inserted. The storage layout language allows to pair one of several different ''tiling strategies'' with an appropriate ''index'', in order to optimally adapt the array partitioning to the expected pattern of data access. |
| 7 | |
| 8 | The rasql syntax for setting the storage layout is inherent to the ''insert statement'': |
| 9 | {{{ |
| 10 | INSERT INTO collName VALUES ... |
| 11 | [ TILING tilingName tilingOptions [ TILE SIZE tileSize ] ] |
| 12 | [ INDEX indexName ] |
| 13 | }}} |
| 14 | |
| 15 | Below the available tiling schemes (''tilingName'') are listed. |
| 16 | |
| 17 | == No tiling == |