Esta é uma postagem de convidado de Jay Gopalakrishnan. Jay é o fundador da Gráficos da Cloud9A empresa oferece uma plataforma de análise criada para arquiteturas de dados modernas, com suporte nativo para Couchbase e N1QL. Siga-os no Twitter @cloud9charts
Esta postagem usa o conjunto de dados de táxis verdes de Nova York no Couchbase para demonstrar a análise nativa usando N1QL e Cloud9 Charts.
Análise de NoSQL nativa
Tradicionalmente, a análise em bancos de dados NoSQL geralmente significa uma das seguintes opções:
-
Colocar os dados em um formato relacional usando um driver ODBC que as arquiteturas tradicionais de BI possam entender. Isso geralmente requer um driver ODBC de terceiros, uma ferramenta de BI tradicional (geralmente baseada em desktop) e esquemas definidos antecipadamente.
-
Processos de ETL para carregar dados relevantes no banco de dados relacional para análise. Isso exige que os esquemas sejam definidos no armazenamento de dados baseado em NoSQL e SQL e nega a flexibilidade de esquema dos bancos de dados NoSQL, como o Couchbase. Também é necessário um longo tempo de espera para que qualquer alteração na estrutura de dados seja propagada para o armazenamento subjacente.
O Native NoSQL Analytics elimina a dependência dos drivers ODBC e dos processos de ETL, permitindo que os usuários comerciais e técnicos aproveitem ao máximo o banco de dados subjacente para obter insights acionáveis imediatamente.
Em resumo, a integração do Couchbase-Cloud9 Charts apresenta os seguintes recursos:
-
Integração totalmente nativa do N1QL sem drivers/tradutores
-
Gerador de consultas N1QL do tipo apontar e clicar
-
Suporte a objetos aninhados e matrizes
-
União entre o Couchbase e outras fontes baseadas em SQL/NoSQL ou API REST
-
Visualizações instantâneas e painéis incorporáveis
-
Análises e previsões avançadas
Conjunto de dados
O conjunto de dados consiste em 45 milhões de viagens de táxi ecológico, disponibilizado pela Comissão de Táxis e Limusines de Nova York.
Os táxis verdes foram lançados em 2013 na cidade de Nova York, voltados para viagens de táxi nos bairros mais afastados de Nova York, tradicionalmente mal atendidos pelos táxis amarelos.
A análise se concentra no seguinte:
-
Análise geoespacial das áreas de coleta e entrega
-
Duração das viagens, por hora e por dia, em todos os bairros
-
Análise de tarifas
-
Previsões de viagem
O conjunto de dados brutos em formato CSV pode ser encontrado aqui (2 GB compactado, 15 GB descompactado).
Cluster do Couchbase
Um cluster Couchbase de 3 nós foi provisionado por nossos amigos da Couchbase. cbtransfertool foi usado para carregar os dados no couchbase a partir de arquivos CSV. Os dados brutos têm a seguinte aparência (truncados para fins de brevidade):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
{ "greentaxi": { "Dropoff_latitude": "40.824813842773438", "Dropoff_longitude": "-73.902938842773438", "Ehail_fee": "", "Extra": 0.5, "Fare_amount" (Valor da tarifa): 10.5, "Lpep_dropoff_datetime": "2013-12-22 02:17:35", ..... "dropoff_city": "Cidade de Nova York-Bronx", "dropoff_county": "Bronx", "pickup_city" (cidade de coleta): "Cidade de Nova York-Manhattan", "pickup_county" (país de coleta): "Novo York", } } |
Considerações sobre índices e desempenho
- Índices secundários otimizados para memória foram adicionados para dropoff_city, pickup_city, dropoff_city, pickup_date e dropoff_date (além do índice primário).
- A índice de cobertura também foi usado em clusters lat/long:
1 2 3 |
CRIAR ÍNDICE coleta_ latlong_idx ON nuvem9(rodada(to_number(Latitude da coleta),3), rodada(to_number(Longitude da coleta),3)) |
As agregações dos dados brutos para rastrear as viagens por hora/dia/coleta/entrega foram criadas em outro bucket para permitir execuções rápidas de consultas:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
INSERIR PARA rides_agg (CHAVE UUID()) SELECIONAR contagem(*) como passeios, rodada(média(Valor da tarifa),0) como tarifa, rodada(média(duração),0) como duração, dia, hora, pickup_region, região de queda DE (SELECIONAR date_part_str(millis_to_zone_name(dropoff_ts, "EST"),"day_of_week" (dia da semana)) como dia, date_part_str(millis_to_zone_name(dropoff_ts, "EST"),"hora") como hora, pickup_region, região de queda, Valor da tarifa, data_diferença_millis(dropoff_ts,pickup_ts,"minuto") como duração DE greentaxi ONDE data_diferença_millis(dropoff_ts,pickup_ts,"minuto") < 150 ) AS tmp GRUPO BY dia, hora, região de queda, pickup_region ORDEM BY dia,hora |
Análise
O painel completo da análise a seguir pode ser acessado aqui. É assim que um painel/relatório gerado em tempo real pode ser compartilhado com outras pessoas.
Análise de coleta e entrega:
A consulta N1QL a seguir agrupa os locais geográficos de retirada, a partir dos quais uma visualização geoespacial dos locais de retirada pode ser derivada instantaneamente usando o Cloud9 Charts:
1 2 3 4 5 6 7 8 |
SELECIONAR rodada(to_number(Latitude da coleta),3) como latitude, rodada(to_number(Longitude da coleta),3) como longitude, contagem(*) como contagem DE nuvem9 GRUPO BY rodada(to_number(Latitude da coleta),3),rodada(to_number(Longitude da coleta),3) ORDEM BY contagem DESC |
Está vendo a zona morta dentro da área de Manhattan no mapa acima? Aqui está o motivo: Os táxis verdes só podem pegar passageiros no norte da East 96th St e da West 110 St.
Compare isso com as coletas do táxi amarelo abaixo, onde a maioria das coletas está concentrada na área de Manhattan.
Embora as zonas de embarque sejam restritas, não há limitações nas áreas de desembarque de passageiros para o serviço de táxi verde. O mapa de calor de desembarque tem a seguinte aparência:
Locais de entrega Consulta N1QL:
1 2 3 4 5 6 7 8 |
SELECIONAR rodada(to_number(Latitude do ponto de chegada),3) como latitude, rodada(to_number(Longitude do ponto de partida),3) como longitude, contagem(*) como contagem DE nuvem9 GRUPO BY rodada(to_number(Latitude do ponto de chegada),3),rodada(to_number(Longitude do ponto de partida),3) ORDEM BY contagem DESC; |
Tendências e previsões de viagens
Vamos dar uma olhada nas tendências gerais de viagens mensais desde que o serviço Green Cab foi lançado.
1 2 3 4 |
SELECIONAR contagem(*) AS passeios, data_de_retirada FORMULÁRIO verde táxi GRUPO BY data_de_retirada_ts |
As tendências mostram que o serviço aumentou no final de 2013 e, a partir de 2014, a tendência de viagens por mês se estabilizou.
Vamos aplicar modelos preditivos a ele para determinar o total de viagens nos próximos meses.
Os modelos preditivos disponíveis no Cloud9 Charts testam os dados em relação a eles para determinar o melhor ajuste. O modelo implica que se espera um ligeiro aumento nos próximos meses.
Comparações de bairros
As restrições de retirada representam um dilema interessante do ponto de vista do proprietário do táxi. As entregas em áreas restritas implicam que o motorista deve voltar a uma região de coleta para a próxima coleta.
Quais são as áreas mais produtivas para um motorista/operador proprietário? Para responder a essa pergunta, vamos dar uma olhada em algumas análises de vizinhança.
A seguir, um diagrama de acordes das relações entre regiões iniciais e regiões finais. Por exemplo, há muito mais (43% a mais) viagens do Harlem → Hamilton Heights, em comparação com Hamilton Heights → Harlem.
1 2 3 4 5 6 7 8 |
SELECIONAR pickup_region, região de queda, soma(passeios) AS passeios DE rides_agg ONDE pickup_region !='' E região de queda !='' GRUPO BY pickup_region, região de queda ORDEM BY passeios DESC |
Análise de tarifas
Se a coleta for no Harlem e a devolução for em Chelsea, uma área de coleta proibida. Durante as 17h às 18h de uma quarta-feira, é uma viagem de 35 minutos, conforme indicado pelo mapa de calor da grade abaixo, com tarifa média de $28. Mas isso significa que o motorista precisa voltar a uma área de coleta para a próxima viagem. Do ponto de vista do motorista, não é o ideal.
Compare isso com outro local de entrega, por exemplo, o bairro de Fort Green no Brooklyn (do Harlem). Essa é uma viagem de $47 dólares que leva em média 57 minutos durante o horário de pico e também oferece amplas oportunidades de coleta na área de Fort Green, conforme indicado pelo mapa de calor geográfico.
Para dar um passo adiante, em quais áreas uma operadora de táxi deve implantar seus ativos?
O gráfico a seguir ajuda a responder a essa pergunta, fornecendo as tarifas médias mais altas em todos os locais para um determinado dia e hora do dia.
Melhores tarifas por localidades e por data/hora
Portanto, parece que às terças-feiras, das 8 às 9 horas da manhã, o bairro de Nkew Gardens produz a maior tarifa média de coleta, enquanto no sábado à noite, às 23 horas, a pole position vai para o bairro da Jamaica.
Resumo
Já se foram os dias de processos de ETL demorados ou de transformar dados semiestruturados em formatos relacionais para fins de análise. Com o Cloud9 Charts, você pode aproveitar o N1QL nativamente para obter insights imediatos e acionáveis que podem ser compartilhados e incorporados em um instante.
Agradecimentos especiais a Prasad Varakur, Chin Hong e ao restante da equipe do Couchbase pelo suporte prático na implantação do Couchbase e na otimização de consultas.
Recursos:
Análise instantânea no Couchbase
Couchbase Connect, palestra ao vivo sobre o conjunto de dados de táxi
Documentação dos gráficos do Couchbase-Cloud9