?>Array ( [lang] => fr [id] => 188 )
Scénario de test & Cas d'usage
Génération d'une table SAS locale volumineuse (`WORK.SENSOR_DATA`) simulant 200 000 relevés de capteurs pour 4 machines différentes.
| 1 | DATA WORK.SENSOR_DATA; |
| 2 | FORMAT TIMESTAMP datetime20.; |
| 3 | DO ID_MACHINE = 'MACHINE_A', 'MACHINE_B', 'MACHINE_C', 'MACHINE_D'; |
| 4 | DO i = 1 to 50000; |
| 5 | TIMESTAMP = dhms(today(), 0, 0, 0) + i * 0.5; |
| 6 | TEMPERATURE = 80 + rand('Normal', 0, 5); |
| 7 | PRESSURE = 1013 + rand('Uniform') * 10; |
| 8 | OUTPUT; |
| 9 | END; |
| 10 | END; |
| 11 | RUN; |
| 1 | PROC CAS; |
| 2 | TABLE.addTable / |
| 3 | caslib='Public', |
| 4 | TABLE={name='IOT_RAW_DATA', replace=TRUE, promote=TRUE, compress=TRUE, partition={'ID_MACHINE'}, orderBy={'TIMESTAMP'}}, |
| 5 | indata='SENSOR_DATA'; |
| 6 | RUN; |
| 7 | QUIT; |
| 1 | PROC CAS; |
| 2 | TABLE.tableDetails / caslib='Public' name='IOT_RAW_DATA'; |
| 3 | RUN; |
| 4 | QUIT; |
| 1 | PROC CAS; |
| 2 | TABLE.fetch / |
| 3 | TABLE={caslib='Public', name='IOT_RAW_DATA', where='ID_MACHINE=\"MACHINE_C\"'}, |
| 4 | to=10; |
| 5 | RUN; |
| 6 | QUIT; |
Une table globale `IOT_RAW_DATA` est créée dans la caslib `Public`. Les détails de la table confirment qu'elle est partitionnée par `ID_MACHINE` et compressée. Une requête sur une partition spécifique retourne des lignes ordonnées par `TIMESTAMP`. La table est visible et requêtable depuis n'importe quelle autre session CAS.