Pular para o conteúdo

Shell Interativo

O shell interativo é um SQL REPL que dá acesso direto ao seu data lake com syntax highlighting, autocomplete e dot commands especiais.

Terminal window
dataspoc-lens shell
DataSpoc Lens Shell (DuckDB)
Type SQL or .help for commands.
lens>
  • Syntax highlighting — palavras-chave SQL, strings e números são coloridos via Pygments
  • Autocomplete — nomes de tabelas, colunas e palavras-chave SQL com Tab
  • Histórico de comandos — persistente entre sessões, armazenado em ~/.dataspoc-lens/history
  • Queries multi-linha — queries são executadas quando você digita ; no final
  • Saída formatada — resultados exibidos como tabelas formatadas

Dot commands são comandos especiais do shell que começam com . e dão acesso rápido a metadados e utilitários.

ComandoDescrição
.tablesLista todas as tabelas montadas
.schema <table>Mostra nomes e tipos das colunas de uma tabela
.bucketsLista todos os buckets registrados
.cache [table]Cacheia uma tabela localmente para uso offline
.export <format> <path>Exporta o resultado da última query para um arquivo
.helpMostra os dot commands disponíveis
.quitSai do shell
lens> .tables
customers
orders
products
lens> .schema orders
order_id INTEGER
customer_id INTEGER
order_date DATE
total DOUBLE
status VARCHAR
lens> SELECT status, COUNT(*) as cnt, AVG(total) as avg_total
...> FROM orders
...> GROUP BY status;
┌───────────┬───────┬───────────┐
│ status │ cnt │ avg_total │
├───────────┼───────┼───────────┤
│ completed │ 32100 │ 85.40 │
│ pending │ 8450 │ 72.15 │
│ cancelled │ 2130 │ 45.20 │
└───────────┴───────┴───────────┘
(3 row(s), 0.089s)
lens> .export csv /tmp/order_stats.csv
Exported 3 row(s) to /tmp/order_stats.csv
lens> .cache orders
Caching 'orders'...
Cached 'orders': 4 file(s), 12.3 MB
lens> .buckets
s3://my-company-data
lens> .quit

Se você configurou um provedor de IA (via setup-ai ou variáveis de ambiente), pode fazer perguntas em linguagem natural diretamente no shell prefixando sua entrada com ask:

lens> ask What is the average order value by month?
SQL: SELECT DATE_TRUNC('month', order_date) as month,
AVG(total) as avg_order_value
FROM orders GROUP BY month ORDER BY month
┌────────────┬─────────────────┐
│ month │ avg_order_value │
├────────────┼─────────────────┤
│ 2024-01-01 │ 78.50 │
│ 2024-02-01 │ 82.30 │
│ 2024-03-01 │ 91.20 │
└────────────┴─────────────────┘
(3 row(s), 1.150s)
AtalhoAção
TabAutocomplete
Up / DownNavegar no histórico de comandos
Ctrl+CCancelar entrada atual
Ctrl+DSair do shell