In order to reuse or extend a source from another file, you can include all the
exported sources from another file using import "path/to/some/file.malloy"
.
For example, if you wanted to create a file flights_by_carrier.malloy
with a query from the flights
source, you could write:
import "flights.malloy" run: flights -> { limit: 5; group_by: carrier; aggregate: flight_count }
[ { "carrier": "WN", "flight_count": 88751 }, { "carrier": "US", "flight_count": 37683 }, { "carrier": "AA", "flight_count": 34577 }, { "carrier": "NW", "flight_count": 33580 }, { "carrier": "UA", "flight_count": 32757 } ]
SELECT base."carrier" as "carrier", COUNT(1) as "flight_count" FROM '../data/flights.parquet' as base GROUP BY 1 ORDER BY 2 desc NULLS LAST LIMIT 5
Import Locations
Imported files may be specified with relative or absolute URLs.
Import Statement | Meaning from "file:///f1/a.malloy" |
---|---|
import "b.malloy" |
"file:///f1/b.malloy" |
import "./c.malloy" |
"file:///f1/c.malloy" |
import "/f1/d.malloy" |
"file:///f1/d.malloy" |
import "file:///f1/e.malloy" |
"file:///f1/e.malloy" |
import "../f2/f.malloy" |
"file:///f2/f.malloy" |
import "https://example.com/g.malloy" |
"https://example.com/g.malloy" |
Selective Imports
The default is to import all objects from the referenced file. You can also use {} from
to select (and optionally rename) specific objects to be imported.