Pular para o conteúdo principal
Este dataset contém medições históricas de observações meteorológicas dos últimos 128 anos. Cada linha é uma medição correspondente a uma data e hora em uma estação meteorológica. A origem deste dataset está disponível aqui, e a lista de números das estações meteorológicas pode ser encontrada aqui.
As fontes dos datasets meteorológicos incluem as estações meteorológicas mantidas pela Central Weather Administration (o código da estação começa com C0, C1 e 4) e as estações meteorológicas agrícolas pertencentes ao Council of Agriculture (códigos de estação diferentes dos mencionados acima):
  • StationId
    • MeasuredDate, o horário da observação
    • StnPres, a pressão atmosférica na estação
    • SeaPres, a pressão ao nível do mar
    • Td, a temperatura do ponto de orvalho
    • RH, a umidade relativa
    • Outros elementos, quando disponíveis

Baixando os dados

  • Uma versão pré-processada dos dados para uso no ClickHouse, que foi limpa, reestruturada e enriquecida. Este conjunto de dados abrange os anos de 1896 a 2023.
  • Baixe os dados brutos originais e converta-os para o formato necessário para o ClickHouse. Usuários que desejam adicionar suas próprias colunas podem querer explorar ou complementar suas próprias abordagens.

Dados pré-processados

O conjunto de dados também foi reestruturado, passando de uma medição por linha para uma linha por ID da estação meteorológica e data da medição, ou seja.
StationId,MeasuredDate,StnPres,Tx,RH,WS,WD,WSGust,WDGust,Precp,GloblRad,TxSoil0cm,TxSoil5cm,TxSoil20cm,TxSoil50cm,TxSoil100cm,SeaPres,Td,PrecpHour,SunShine,TxSoil10cm,EvapA,Visb,UVI,Cloud Amount,TxSoil30cm,TxSoil200cm,TxSoil300cm,TxSoil500cm,VaporPressure
C0X100,2016-01-01 01:00:00,1022.1,16.1,72,1.1,8.0,,,,,,,,,,,,,,,,,,,,,,,
C0X100,2016-01-01 02:00:00,1021.6,16.0,73,1.2,358.0,,,,,,,,,,,,,,,,,,,,,,,
C0X100,2016-01-01 03:00:00,1021.3,15.8,74,1.5,353.0,,,,,,,,,,,,,,,,,,,,,,,
C0X100,2016-01-01 04:00:00,1021.2,15.8,74,1.7,8.0,,,,,,,,,,,,,,,,,,,,,,,
É fácil consultar e verificar que a tabela resultante é menos esparsa e que alguns elementos são NULL, pois não podem ser medidos nesta estação meteorológica. Este conjunto de dados está disponível no seguinte local do Google CloudStorage. Baixe o conjunto de dados para o seu sistema de arquivos local (e insira-o com o cliente do ClickHouse) ou insira-o diretamente no ClickHouse (consulte Inserindo a partir de URL). Para baixar:
wget https://storage.googleapis.com/taiwan-weather-observaiton-datasets/preprocessed_weather_daily_1896_2023.tar.gz

# Opção: Validar o checksum
md5sum preprocessed_weather_daily_1896_2023.tar.gz
# O checksum deve ser igual a: 11b484f5bd9ddafec5cfb131eb2dd008

tar -xzvf preprocessed_weather_daily_1896_2023.tar.gz
daily_weather_preprocessed_1896_2023.csv

# Opção: Validar o checksum
md5sum daily_weather_preprocessed_1896_2023.csv
# O checksum deve ser igual a: 1132248c78195c43d93f843753881754

Dados brutos originais

Os detalhes a seguir descrevem as etapas para baixar os dados brutos originais e transformá-los e convertê-los como quiser.

Baixar

Para fazer o download dos dados brutos originais:
mkdir tw_raw_weather_data && cd tw_raw_weather_data

wget https://storage.googleapis.com/taiwan-weather-observaiton-datasets/raw_data_weather_daily_1896_2023.tar.gz

# Opção: Validar o checksum
md5sum raw_data_weather_daily_1896_2023.tar.gz
# O checksum deve ser igual a: b66b9f137217454d655e3004d7d1b51a

tar -xzvf raw_data_weather_daily_1896_2023.tar.gz
466920_1928.csv
466920_1929.csv
466920_1930.csv
466920_1931.csv
...

# Opção: Validar o checksum
cat *.csv | md5sum
# O checksum deve ser igual a: b26db404bf84d4063fac42e576464ce1

Obtenha as estações meteorológicas de Taiwan

wget -O weather_sta_list.csv https://github.com/Raingel/weather_station_list/raw/main/data/weather_sta_list.csv

# Opcional: Converter a codificação UTF-8-BOM para UTF-8
sed -i '1s/^\xEF\xBB\xBF//' weather_sta_list.csv

Criar o esquema da tabela

Crie a tabela MergeTree no ClickHouse (usando o cliente do ClickHouse).
CREATE TABLE tw_weather_data (
    StationId String null,
    MeasuredDate DateTime64,
    StnPres Float64 null,
    SeaPres Float64 null,
    Tx Float64 null,
    Td Float64 null,
    RH Float64 null,
    WS Float64 null,
    WD Float64 null,
    WSGust Float64 null,
    WDGust Float64 null,
    Precp Float64 null,
    PrecpHour Float64 null,
    SunShine Float64 null,
    GloblRad Float64 null,
    TxSoil0cm Float64 null,
    TxSoil5cm Float64 null,
    TxSoil10cm Float64 null,
    TxSoil20cm Float64 null,
    TxSoil50cm Float64 null,
    TxSoil100cm Float64 null,
    TxSoil30cm Float64 null,
    TxSoil200cm Float64 null,
    TxSoil300cm Float64 null,
    TxSoil500cm Float64 null,
    VaporPressure Float64 null,
    UVI Float64 null,
    "Cloud Amount" Float64 null,
    EvapA Float64 null,
    Visb Float64 null
)
ENGINE = MergeTree
ORDER BY (MeasuredDate);

Inserindo dados no ClickHouse

Inserindo de um arquivo local

Os dados podem ser inseridos de um arquivo local da seguinte forma (no cliente do ClickHouse):
INSERT INTO tw_weather_data FROM INFILE '/path/to/daily_weather_preprocessed_1896_2023.csv'
onde /path/to representa o caminho específico do usuário para o arquivo local no disco. E a saída de exemplo da resposta é a seguinte após inserir dados no ClickHouse:
Query id: 90e4b524-6e14-4855-817c-7e6f98fbeabb

Ok.
131985329 rows in set. Elapsed: 71.770 sec. Processed 131.99 million rows, 10.06 GB (1.84 million rows/s., 140.14 MB/s.)
Peak memory usage: 583.23 MiB.

Inserindo a partir de URL

INSERT INTO tw_weather_data SELECT *
FROM url('https://storage.googleapis.com/taiwan-weather-observaiton-datasets/daily_weather_preprocessed_1896_2023.csv', 'CSVWithNames')

Para saber como acelerar esse processo, consulte nosso artigo no blog sobre como otimizar grandes cargas de dados.

Verifique a quantidade de linhas e os tamanhos dos dados

  1. Vamos ver quantas linhas foram inseridas:
SELECT formatReadableQuantity(count())
FROM tw_weather_data;
┌─formatReadableQuantity(count())─┐
│ 131.99 million                  │
└─────────────────────────────────┘
  1. Vamos ver quanto espaço em disco esta tabela usa:
SELECT
    formatReadableSize(sum(bytes)) AS disk_size,
    formatReadableSize(sum(data_uncompressed_bytes)) AS uncompressed_size
FROM system.parts
WHERE (`table` = 'tw_weather_data') AND active
┌─disk_size─┬─uncompressed_size─┐
│ 2.13 GiB  │ 32.94 GiB         │
└───────────┴───────────────────┘

Consultas de exemplo

Q1: Recupere a maior temperatura de ponto de orvalho de cada estação meteorológica em um determinado ano

SELECT
    StationId,
    max(Td) AS max_td
FROM tw_weather_data
WHERE (year(MeasuredDate) = 2023) AND (Td IS NOT NULL)
GROUP BY StationId
┌─StationId─┬─max_td─┐
│ 466940    │      1 │
│ 467300    │      1 │
│ 467540    │      1 │
│ 467490    │      1 │
│ 467080    │      1 │
│ 466910    │      1 │
│ 467660    │      1 │
│ 467270    │      1 │
│ 467350    │      1 │
│ 467571    │      1 │
│ 466920    │      1 │
│ 467650    │      1 │
│ 467550    │      1 │
│ 467480    │      1 │
│ 467610    │      1 │
│ 467050    │      1 │
│ 467590    │      1 │
│ 466990    │      1 │
│ 467060    │      1 │
│ 466950    │      1 │
│ 467620    │      1 │
│ 467990    │      1 │
│ 466930    │      1 │
│ 467110    │      1 │
│ 466881    │      1 │
│ 467410    │      1 │
│ 467441    │      1 │
│ 467420    │      1 │
│ 467530    │      1 │
│ 466900    │      1 │
└───────────┴────────┘

30 rows in set. Elapsed: 0.045 sec. Processed 6.41 million rows, 187.33 MB (143.92 million rows/s., 4.21 GB/s.)

Q2: Busca de dados brutos com intervalo de tempo de duração específica, campos e estação meteorológica

SELECT
    StnPres,
    SeaPres,
    Tx,
    Td,
    RH,
    WS,
    WD,
    WSGust,
    WDGust,
    Precp,
    PrecpHour
FROM tw_weather_data
WHERE (StationId = 'C0UB10') AND (MeasuredDate >= '2023-12-23') AND (MeasuredDate < '2023-12-24')
ORDER BY MeasuredDate ASC
LIMIT 10
┌─StnPres─┬─SeaPres─┬───Tx─┬───Td─┬─RH─┬──WS─┬──WD─┬─WSGust─┬─WDGust─┬─Precp─┬─PrecpHour─┐
│  1029.5 │    ᴺᵁᴸᴸ │ 11.8 │ ᴺᵁᴸᴸ │ 78 │ 2.7 │ 271 │    5.5 │    275 │ -99.8 │     -99.8 │
│  1029.8 │    ᴺᵁᴸᴸ │ 12.3 │ ᴺᵁᴸᴸ │ 78 │ 2.7 │ 289 │    5.5 │    308 │ -99.8 │     -99.8 │
│  1028.6 │    ᴺᵁᴸᴸ │ 12.3 │ ᴺᵁᴸᴸ │ 79 │ 2.3 │ 251 │    6.1 │    289 │ -99.8 │     -99.8 │
│  1028.2 │    ᴺᵁᴸᴸ │   13 │ ᴺᵁᴸᴸ │ 75 │ 4.3 │ 312 │    7.5 │    316 │ -99.8 │     -99.8 │
│  1027.8 │    ᴺᵁᴸᴸ │ 11.1 │ ᴺᵁᴸᴸ │ 89 │ 7.1 │ 310 │   11.6 │    322 │ -99.8 │     -99.8 │
│  1027.8 │    ᴺᵁᴸᴸ │ 11.6 │ ᴺᵁᴸᴸ │ 90 │ 3.1 │ 269 │   10.7 │    295 │ -99.8 │     -99.8 │
│  1027.9 │    ᴺᵁᴸᴸ │ 12.3 │ ᴺᵁᴸᴸ │ 89 │ 4.7 │ 296 │    8.1 │    310 │ -99.8 │     -99.8 │
│  1028.2 │    ᴺᵁᴸᴸ │ 12.2 │ ᴺᵁᴸᴸ │ 94 │ 2.5 │ 246 │    7.1 │    283 │ -99.8 │     -99.8 │
│  1028.4 │    ᴺᵁᴸᴸ │ 12.5 │ ᴺᵁᴸᴸ │ 94 │ 3.1 │ 265 │    4.8 │    297 │ -99.8 │     -99.8 │
│  1028.3 │    ᴺᵁᴸᴸ │ 13.6 │ ᴺᵁᴸᴸ │ 91 │ 1.2 │ 273 │    4.4 │    256 │ -99.8 │     -99.8 │
└─────────┴─────────┴──────┴──────┴────┴─────┴─────┴────────┴────────┴───────┴───────────┘

10 rows in set. Elapsed: 0.009 sec. Processed 91.70 thousand rows, 2.33 MB (9.67 million rows/s., 245.31 MB/s.)

Créditos

Gostaríamos de reconhecer os esforços da Central Weather Administration e da Agricultural Meteorological Observation Network (Estação) do Conselho de Agricultura na preparação, limpeza e distribuição deste conjunto de dados. Agradecemos seus esforços. Ou, J.-H., Kuo, C.-H., Wu, Y.-F., Lin, G.-C., Lee, M.-H., Chen, R.-K., Chou, H.-P., Wu, H.-Y., Chu, S.-C., Lai, Q.-J., Tsai, Y.-C., Lin, C.-C., Kuo, C.-C., Liao, C.-T., Chen, Y.-N., Chu, Y.-W., Chen, C.-Y., 2023. Modelo de aprendizado profundo orientado a aplicações para alerta precoce da brusone do arroz em Taiwan. Ecological Informatics 73, 101950. https://doi.org/10.1016/j.ecoinf.2022.101950 [13/12/2022]
Última modificação em 10 de junho de 2026