Personally, I think integrating DuckDB internally at the C++ level might do SAS Software lots of good, be it Viya or SAS 9.4 (one can dream)
Because interrogating/inspecting Parquet metadata via DuckDB, can be as simple as issuing
summarize (select * FROM read_parquet('path-to\green_tripdata_2024-12.parquet'));
┌──────────────────────┬─────────────┬─────────────────────┬───┬──────────────────────┬───────┬─────────────────┐
│ column_name │ column_type │ min │ . │ q75 │ count │ null_percentage │
│ varchar │ varchar │ varchar │ │ varchar │ int64 │ decimal(9,2) │
├──────────────────────┼─────────────┼─────────────────────┼───┼──────────────────────┼───────┼─────────────────┤
│ VendorID │ INTEGER │ 1 │ . │ 2 │ 53994 │ 0.00 │
│ lpep_pickup_datetime │ TIMESTAMP │ 2008-12-31 23:08:01 │ . │ 2024-12-21 20:30:4. │ 53994 │ 0.00 │
│ lpep_dropoff_datet. │ TIMESTAMP │ 2009-01-01 00:07:45 │ . │ 2024-12-21 20:50:3. │ 53994 │ 0.00 │
│ store_and_fwd_flag │ VARCHAR │ N │ . │ NULL │ 53994 │ 3.67 │
│ RatecodeID │ BIGINT │ 1 │ . │ 1 │ 53994 │ 3.67 │
│ PULocationID │ INTEGER │ 1 │ . │ 97 │ 53994 │ 0.00 │
│ DOLocationID │ INTEGER │ 1 │ . │ 229 │ 53994 │ 0.00 │
│ passenger_count │ BIGINT │ 0 │ . │ 1 │ 53994 │ 3.67 │
│ trip_distance │ DOUBLE │ 0.0 │ . │ 3.0810886161036284 │ 53994 │ 0.00 │
│ fare_amount │ DOUBLE │ -250.08 │ . │ 20.183429813078977 │ 53994 │ 0.00 │
│ extra │ DOUBLE │ -5.0 │ . │ 2.158148364635992 │ 53994 │ 0.00 │
│ mta_tax │ DOUBLE │ -0.5 │ . │ 0.5 │ 53994 │ 0.00 │
│ tip_amount │ DOUBLE │ -0.9 │ . │ 3.801633161332969 │ 53994 │ 0.00 │
│ tolls_amount │ DOUBLE │ -6.94 │ . │ 0.0 │ 53994 │ 0.00 │
│ ehail_fee │ DOUBLE │ NULL │ . │ NULL │ 53994 │ 100.00 │
│ improvement_surcha. │ DOUBLE │ -1.0 │ . │ 1.0 │ 53994 │ 0.00 │
│ total_amount │ DOUBLE │ -251.08 │ . │ 27.643610072829308 │ 53994 │ 0.00 │
│ payment_type │ BIGINT │ 1 │ . │ 2 │ 53994 │ 3.67 │
│ trip_type │ BIGINT │ 1 │ . │ 1 │ 53994 │ 3.68 │
│ congestion_surcharge │ DOUBLE │ -2.75 │ . │ 2.75 │ 53994 │ 3.67 │
├──────────────────────┴─────────────┴─────────────────────┴───┴──────────────────────┴───────┴─────────────────┤
│ 20 rows 12 columns (6 shown) │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ Run Time (s): real 0.266 user 0.312500 sys 0.031250
... View more