ARPA-SIMC / dballe

Fast on-disk database for meteorological observed and forecast data.
Other
19 stars 6 forks source link

dbadb import do not take in account filter option #69

Closed umberto-pellegrini closed 8 years ago

umberto-pellegrini commented 8 years ago

dbadb import --wipe-first --dsn=sqlite:/dev/shm/pippo.sqlite "attr_filter=B33007=0" miazia.bufr

il db pippo.sqlite ha tutti gli stessi dati di miazia.bufr, nonostante il filtro applicato. miazia.zip

edigiacomo commented 8 years ago

Leggendo l'help mi pare che non sia previsto (a meno che l'help non sia obsoleto):

$ dbadb help import
Usage: dbadb import [options] [filter] filename [filename [ ... ] ]

Import data into the database.

Options are:
  -?, --help                print an help message
      --verbose             verbose output
  -t, --type=type           format of the input data ('bufr', 'crex', 'aof', 'csv', 'json')
      --rejected=fname      write unprocessed data to this file
  -f, --overwrite           overwrite existing data
  -r, --report=rep          force data to be of this type of report
      --fast                Prefer speed to transactional integrity: if the import is interrupted, the database needs to be wiped and recreated.
      --no-attrs            do not import data attributes
      --full-pseudoana      merge pseudoana extra values with the ones already existing in the database
      --precise             import messages using precise contexts instead of standard ones

Options used to connect to the database
      --dsn=url             alias of --url, used for historical compatibility
      --url=url             DSN, or URL-like database definition, to use for connecting to the DB-All.e database (can also be specified in the
                            environment as DBA_DB)
      --wipe-first          wipe database before any other action

Options used to filter messages
      --category=num        match messages with the given data category
      --subcategory=num     match BUFR messages with the given data subcategory
      --check-digit=num     match CREX messages with check digit (if 1) or without check digit (if 0)
      --parsable            match only messages that can be parsed
      --index=expr          match messages with the index in the given range (ex.: 1-5,9,22-30)
umberto-pellegrini commented 8 years ago

Va bene! Grazie mille.

spanezz commented 8 years ago

In realtà un filtro è previsto: Usage: dbadb import [options] [filter] filename [filename [ ... ] ].

Al momento il filtro supporta però solo ana_id, block, station, lat*, lon*, year*second*, e rep_memo.

spanezz commented 8 years ago

questo perché l'importatore al momento importa solo messaggi interi, e i filtri implementati al momento son tutti filtri che possono operare a livello di singolo messaggio bufr. Filtrare invece per codice tabella B o attr_filter vuol dire fare l'importazione parziale di un messaggio, che al momento non è implementata.

Se è una cosa che serve, possiamo ragionare di come implementarla.

edigiacomo commented 8 years ago

Interessante, ero stato tratto in inganno dalla diversa signature dell'help rispetto e.g. alla export e pensavo che [filter] fossero le "Options used to filter messages".