{"id":2497,"date":"2017-01-18T10:07:24","date_gmt":"2017-01-18T10:07:23","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2497"},"modified":"2025-10-09T07:26:22","modified_gmt":"2025-10-09T14:26:22","slug":"taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/","title":{"rendered":"Taxi Ride Analysis &#8211; Native Analytics on Couchbase with Cloud9 Charts"},"content":{"rendered":"<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;font-style: italic;vertical-align: baseline\">This is a guest post by Jay Gopalakrishnan. Jay is the founder of <\/span><a style=\"text-decoration: none\" href=\"https:\/\/www.cloud9charts.com\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #1155cc;background-color: transparent;font-style: italic;text-decoration: underline;vertical-align: baseline\">Cloud9 Charts<\/span><\/a><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;font-style: italic;vertical-align: baseline\">, an analytics platform built for modern data architectures, featuring native support for Couchbase and N1QL. Follow them on twitter <\/span><a style=\"text-decoration: none\" href=\"https:\/\/twitter.com\/cloud9charts\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #1155cc;background-color: transparent;font-style: italic;text-decoration: underline;vertical-align: baseline\">@cloud9charts<\/span><\/a><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">This post uses the NYC green cab taxi dataset on Couchbase to demonstrate native analytics using N1QL &amp; Cloud9 Charts. <\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 18pt;margin-bottom: 6pt\"><span style=\"font-size: 21.333333333333332px;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;vertical-align: baseline\">Native NoSQL Analytics<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Traditionally, analytics on NoSQL databases typically means one of the following:<\/span><\/p>\n<ol style=\"margin-top: 0pt;margin-bottom: 0pt\">\n<li dir=\"ltr\" style=\"list-style-type: lower-alpha;font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;background-color: transparent;vertical-align: baseline\">Shoe-horn the data into a relational form using an ODBC driver that traditional BI architectures can understand. This usually requires a third party ODBC driver, a traditional (typically desktop based) BI tool and schemas defined upfront. \u00a0<\/span><\/p>\n<\/li>\n<li dir=\"ltr\" style=\"list-style-type: lower-alpha;font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;background-color: transparent;vertical-align: baseline\">ETL processes to load up relevant data into relational database for analysis. This requires schemas to be defined across the NoSQL and SQL based datastore and negates the schema-flexibility of NoSQL databases like Couchbase. Also required is a long lead time for any changes to the data structure to propagate to the underlying store. \u00a0\u00a0<\/span><\/p>\n<\/li>\n<\/ol>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Native NoSQL Analytics unshackles the dependency on ODBC drivers and ETL processes, enabling business and technical users to leverage the underlying database to the fullest extent to derive actionable insights immediately. <\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Briefly, Couchbase-Cloud9 Charts Integration features the following:<\/span><\/p>\n<ul style=\"margin-top: 0pt;margin-bottom: 0pt;margin-left: 40px\">\n<li dir=\"ltr\" style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;background-color: transparent;vertical-align: baseline\">Fully Native N1QL integration without drivers\/translators<\/span><\/p>\n<\/li>\n<li dir=\"ltr\" style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;background-color: transparent;vertical-align: baseline\">Point and click N1QL query generator<\/span><\/p>\n<\/li>\n<li dir=\"ltr\" style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;background-color: transparent;vertical-align: baseline\">Support for nested objects and Arrays<\/span><\/p>\n<\/li>\n<li dir=\"ltr\" style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;background-color: transparent;vertical-align: baseline\">Join between Couchbase and other SQL\/NoSQL or REST API based sources<\/span><\/p>\n<\/li>\n<li dir=\"ltr\" style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;background-color: transparent;vertical-align: baseline\">Instant visualizations &amp; embeddable dashboards<\/span><\/p>\n<\/li>\n<li dir=\"ltr\" style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;background-color: transparent;vertical-align: baseline\">Advanced Analytics &amp; \u00a0Predictions <\/span><\/p>\n<\/li>\n<\/ul>\n<h2 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 18pt;margin-bottom: 6pt\"><span style=\"font-size: 21.333333333333332px;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;vertical-align: baseline\">Dataset<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">The dataset consists of a 45 million green cab taxi rides, made available by the <\/span><a style=\"text-decoration: none\" href=\"https:\/\/www.nyc.gov\/tlc\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #1155cc;background-color: transparent;text-decoration: underline;vertical-align: baseline\">NYC Taxi \u00a0&amp; Limousine Commission<\/span><\/a><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">. <\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Green cabs were launched in 2013 in New York city, targeted towards taxi rides in the outer boroughs of NYC that were traditionally underserved by yellow cabs. <\/span><\/p>\n<div><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><img loading=\"lazy\" decoding=\"async\" style=\"border-style: none\" src=\"https:\/\/lh6.googleusercontent.com\/ytFgkTvqQDYr6Su_bPX0tCvS8jzVGRR1Ex-FjmTd7oPRPfkfUlFhKZ6CBqSOfceXjNLxilbAtgR_rRt7rX34fEcWyuYmhU-y8ymCN5CMTxDMjA_d9E9hShrbVFNWPZnfNyPQur9-\" width=\"509\" height=\"262\" \/><\/span><\/div>\n<div><\/div>\n<div>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">The analysis is focused on the following: <\/span><\/p>\n<ul style=\"margin-top: 0pt;margin-bottom: 0pt;margin-left: 40px\">\n<li dir=\"ltr\" style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;background-color: transparent;vertical-align: baseline\">Geo Spatial analysis of pickup areas and dropoffs<\/span><\/p>\n<\/li>\n<li dir=\"ltr\" style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;background-color: transparent;vertical-align: baseline\">Trip durations, by hour by day across neighborhoods<\/span><\/p>\n<\/li>\n<li dir=\"ltr\" style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;background-color: transparent;vertical-align: baseline\">Fare analysis<\/span><\/p>\n<\/li>\n<li dir=\"ltr\" style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;background-color: transparent;vertical-align: baseline\">Ride Predictions<\/span><\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">The raw dataset in CSV form can be found <\/span><a style=\"text-decoration: none\" href=\"https:\/\/s3.amazonaws.com\/c9demo\/green_tripdata_all.tgz\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #1155cc;background-color: transparent;text-decoration: underline;vertical-align: baseline\">here<\/span><\/a><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"> (2 GB zipped, 15GB unzipped).<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 18pt;margin-bottom: 6pt\"><span style=\"font-size: 21.333333333333332px;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;vertical-align: baseline\">Couchbase Cluster<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">A 3 node Couchbase cluster was provisioned by our friends at Couchbase. <\/span><a style=\"text-decoration: none\" href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/cli\/cbtransfer-tool.html\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #1155cc;background-color: transparent;text-decoration: underline;vertical-align: baseline\">cbtransfertool<\/span><\/a><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"> was used to load up the data into couchbase from CSV files. <\/span><span style=\"color: #000000;font-family: Arial;font-size: 14.666666666666666px;line-height: 1.38;background-color: transparent\">Raw data looks like this (truncated for the sake of brevity): <\/span><\/p>\n<pre><code class=\"language-json\">{\r\n    \"greentaxi\": {\r\n     \"Dropoff_latitude\": \"40.824813842773438\",\r\n     \"Dropoff_longitude\": \"-73.902938842773438\",\r\n     \"Ehail_fee\": \"\",\r\n     \"Extra\": 0.5,\r\n     \"Fare_amount\": 10.5,\r\n     \"Lpep_dropoff_datetime\": \"2013-12-22 02:17:35\",\r\n     \r\n           \u2026..\r\n    \r\n      \"dropoff_city\": \"New York City-Bronx\",\r\n      \"dropoff_county\": \"Bronx\",\r\n          \"pickup_city\": \"New York City-Manhattan\",\r\n      \"pickup_county\": \"New York\u201d,\r\n       \r\n    }\r\n}<\/code><\/pre>\n<h2 dir=\"ltr\" style=\"margin-top: 18pt;margin-bottom: 6pt;line-height: 1.38;color: #333333;text-align: left\"><span style=\"font-size: 21.333333333333332px;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;vertical-align: baseline\">Indexes &amp; Performance Considerations<\/span><\/h2>\n<ul dir=\"ltr\">\n<li style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><a href=\"https:\/\/www.couchbase.com\/blog\/faster-indexing-and-query-with-memory-optimized-global-secondary-indexes-gsi\/\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #1155cc;background-color: transparent;text-decoration: underline;vertical-align: baseline\">Memory optimized secondary indexes<\/span><\/a><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"> were added for dropoff_city, pickup_city, dropoff_city, pickup_date and dropoff_date (in addition to the primary index).<\/span><\/li>\n<li style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">A <\/span><a style=\"text-decoration: none\" href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/indexes\/covering-indexes.html\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #1155cc;background-color: transparent;text-decoration: underline;vertical-align: baseline\">covering index<\/span><\/a><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"> \u00a0was also used lat\/long clusters:<\/span><\/li>\n<\/ul>\n<pre><code class=\"language-sql\">CREATE INDEX pickup_ latlong_idx  ON cloud9(round(to_number(Pickup_latitude),3),\r\n                                            round(to_number(Pickup_longitude),3))\r\n<\/code><\/pre>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Aggregations from the raw data to track rides by hour\/day\/pickup\/dropoff was created into another bucket to enable fast query executions:<\/span><\/p>\n<pre><code class=\"language-sql\">INSERT INTO rides_agg (KEY UUID())  \r\nSELECT \r\n   count(*) as rides, \r\n   round(avg(Fare_amount),0) as fare,\r\n   round(avg(duration),0) as duration, \r\n   day,\r\n   hour,\r\n   pickup_region,\r\n   dropoff_region\r\n   FROM \r\n   (SELECT date_part_str(millis_to_zone_name(dropoff_ts, \"EST\"),\"day_of_week\") as day,\r\n           date_part_str(millis_to_zone_name(dropoff_ts, \"EST\"),\"hour\") as hour,\r\n           pickup_region,\r\n           dropoff_region,\r\n           Fare_amount,\r\n           date_diff_millis(dropoff_ts,pickup_ts,\"minute\") as duration\r\n    FROM greentaxi \r\n    WHERE date_diff_millis(dropoff_ts,pickup_ts,\"minute\") &lt; 150\r\n   ) AS tmp\r\nGROUP BY \r\n   day,\r\n   hour,\r\n   dropoff_region,\r\n   pickup_region\r\nORDER BY day,hour<\/code><\/pre>\n<h2 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 18pt;margin-bottom: 6pt\"><span style=\"font-size: 21.333333333333332px;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;vertical-align: baseline\">Analysis<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">The full dashboard of the following analysis can be accessed <\/span><a style=\"text-decoration: none\" href=\"https:\/\/www.cloud9charts.com\/d\/unUynISN1XWDdGsHsCE93hFQisD2WYmsQr8ipNcuOeHV0ie\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #1155cc;background-color: transparent;text-decoration: underline;vertical-align: baseline\">here<\/span><\/a><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">. This is how a generated live dashboard\/report can be shared with others.<\/span><\/p>\n<h3 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 16pt;margin-bottom: 4pt\"><span style=\"font-size: 18.666666666666664px;font-family: Arial;color: #434343;background-color: transparent;font-weight: 400;vertical-align: baseline\">Pickup &amp; Dropoff Analysis:<\/span><span style=\"font-size: 18.666666666666664px;font-family: Arial;color: #434343;background-color: transparent;font-weight: 400;vertical-align: baseline\">\u00a0\u00a0 \u00a0<\/span><\/h3>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">The following N1QL query clusters the pickup geo locations, from which a geo-spatial view of the pickup locations can be instantly derived using Cloud9 Charts: <\/span><\/p>\n<pre><code class=\"language-sql\">SELECT \r\n   round(to_number(Pickup_latitude),3) as latitude, \r\n   round(to_number(Pickup_longitude),3) as longitude, \r\n   count(*) as count \r\nFROM cloud9 \r\nGROUP BY round(to_number(Pickup_latitude),3),round(to_number(Pickup_longitude),3) \r\nORDER BY count DESC\r\n<\/code><\/pre>\n<p><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><img loading=\"lazy\" decoding=\"async\" style=\"border-style: none\" src=\"https:\/\/lh3.googleusercontent.com\/f6jiFCtYqY2XDE7Ke5Vg6HStTumHtGiT4pbfg7evoX2DobeJkq7YY6UJeFJiuOCSXPZiJRCdUbocZY4pPQO8St1LWhEPIfeVR_zjj12zTk7CPxrRa5eAJCjCSAjd4uCN7CslGQYN\" width=\"624\" height=\"592\" \/><\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">See the dead zone within the Manhattan area on the map above? Here\u2019s why: Green cabs are only allowed pick ups from the north of East 96th St and West 110 St. \u00a0<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Contrast this with Yellow cab pickups below where majority of the pickups are concentrated around the Manhattan area. <\/span><\/p>\n<p><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><img loading=\"lazy\" decoding=\"async\" style=\"border-style: none\" src=\"https:\/\/lh4.googleusercontent.com\/vMOvuhnFWqaYynOvf6hc5bcKjg9nec7ky87bsd89fQzZYvLbWBJLJO8Ov_WQoIqg2bupoEGg1RqOITbgn2w35gTwquHG9DKdb9TccPF1vzmIMgztUfHzH3X8CE2CA4tMrxwVC4_5\" width=\"624\" height=\"428\" \/><\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">While pickup zones are restricted, there are no limitations on passenger drop off areas for the green cab service. The drop-off heatmap looks like this:<\/span><\/p>\n<div><\/div>\n<div><span style=\"font-size: 10.666666666666666px;font-family: Calibri;color: #000000;background-color: transparent;vertical-align: baseline\"><img loading=\"lazy\" decoding=\"async\" style=\"border-style: none\" src=\"https:\/\/lh3.googleusercontent.com\/yH9-NnPOkvz3CyD3krggW4sUmvllf795PNoR-0vYMXL-3CAmz0eLsHltucz34isQEGluYiCz7_Qd5wEQ-01quH7naaygbPTrbbS5t4P71jJ3JEt9XYlSdW0bpAMmPCR3iVVBy5kI\" width=\"624\" height=\"597\" \/><\/span><\/div>\n<div>\n<h4 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Drop-off Locations N1QL query:<\/span><\/h4>\n<pre><code class=\"language-sql\">SELECT \r\n    round(to_number(Dropoff_latitude),3) as latitude, \r\n    round(to_number(Dropoff_longitude),3) as longitude, \r\n    count(*) as count    \r\nFROM cloud9 \r\nGROUP BY round(to_number(Dropoff_latitude),3),round(to_number(Dropoff_longitude),3) \r\nORDER BY count DESC;\r\n<\/code><\/pre>\n<h3 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 16pt;margin-bottom: 4pt\"><span style=\"font-size: 18.666666666666664px;font-family: Arial;color: #434343;background-color: transparent;font-weight: 400;vertical-align: baseline\">Ride Trends &amp; Predictions <\/span><\/h3>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Let\u2019s look at the overall monthly ride trends since the Green Cab service was launched. <\/span><\/p>\n<pre><code class=\"language-sql\">SELECT count(*) AS rides, pickup_date_ts\r\nFORM green taxi\r\nGROUP BY pickup_date_ts\r\n<\/code><\/pre>\n<div><\/div>\n<div><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><img loading=\"lazy\" decoding=\"async\" style=\"border-style: none\" src=\"https:\/\/lh3.googleusercontent.com\/vqyAlcOdrtNQRueEEckE7D7rYhfjTP59Omy8XIZb8mwUx-HkxB7MqW0k9b4VMdBymQRhPeEXuNAvX6mgaldrTASKI0XgQ59wh5OU0_JtgolCfzLZ495Qqut1MFkKdVPvKR4bO7SI\" width=\"624\" height=\"491\" \/><\/span><\/div>\n<div><\/div>\n<div>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Trends show that service ramped up in late 2013, and from 2014 onwards, the rides per month trend has stabilized. <\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Let\u2019s apply predictive models on it to determine the total rides over the next few months. <\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Predictive models available on Cloud9 Charts backtests the data against them determine the best fit. The model implies that a slight uptick is expected over the next few months. <\/span><\/p>\n<div><\/div>\n<div><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><img loading=\"lazy\" decoding=\"async\" style=\"border-style: none\" src=\"https:\/\/lh4.googleusercontent.com\/0nP0uuuygJNkp3MbCYTghG5pqkGGwdhinJcFdubX0wI7SxAdGxWuN7jUoT7dg8_VFOxbmTfkYYpjwD8bBnDAfs66HKbfBNYcb_4Qf5f2oL0ZdqICj-X7BPDF7ek0TOnnWEcpskkM\" width=\"624\" height=\"361\" \/><\/span><\/div>\n<div><\/div>\n<h3><span style=\"font-size: 18.666666666666664px;font-family: Arial;color: #434343;background-color: transparent;font-weight: 400;vertical-align: baseline\">Neighborhood Comparisons<\/span><\/h3>\n<div>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Pickup restrictions poses interesting conundrums from a cab owner\u2019s standpoint. Dropoffs into restricted areas imply that driver must get back into a pickup region for the next pickup. <\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">What are the most productive areas for a driver\/owner operator? To answer this question, let\u2019s look at some neighborhood analysis. <\/span><\/p>\n<p><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Following shows a Chord diagram of the relationships between start regions vs end regions. For example, there are far more (43% more) rides from Harlem \u2192 Hamilton Heights, vs Hamilton Heights \u2192 Harlem. <\/span><\/p>\n<p><span style=\"font-size: 10.666666666666666px;font-family: Calibri;color: #000000;background-color: transparent;vertical-align: baseline\"><img loading=\"lazy\" decoding=\"async\" style=\"border-style: none\" src=\"https:\/\/lh5.googleusercontent.com\/jI7m7zGrIru_AJ804ZqHiB-Hctx-LYy57CotzEhOBzMHI21ZUyr6G2lUe9OGdFrnhM42Q14sgua3Qf6hzCL5fcTxZ7DzZ0g-ujzvPOeEKLQvFLQR8QT6BgfxzkBJbCjtOGMYZPf8\" width=\"624\" height=\"463\" \/><\/span><\/p>\n<pre><code class=\"language-sql\">SELECT \r\n    pickup_region,\r\n    dropoff_region,\r\n    sum(rides) AS rides\r\nFROM rides_agg\r\nWHERE pickup_region !='' AND dropoff_region !=''\r\nGROUP BY pickup_region, dropoff_region\r\nORDER BY rides DESC<\/code><\/pre>\n<h3 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 16pt;margin-bottom: 4pt\"><span style=\"font-size: 18.666666666666664px;font-family: Arial;color: #434343;background-color: transparent;font-weight: 400;vertical-align: baseline\">Fare Analysis<\/span><\/h3>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">If the the pickup is in Harlem and the drop-off is in Chelsea, a prohibited pickup area. During 5-6 PM on a Wednesday, it\u2019s a 35 minute ride as indicated by the grid heatmap below, for average fare of $28. But it means that the driver must get back to a pick-up area for the next ride. From a driver\u2019s standpoint, not ideal.<\/span><\/p>\n<div><\/div>\n<div><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><img loading=\"lazy\" decoding=\"async\" style=\"border-style: none\" src=\"https:\/\/lh6.googleusercontent.com\/Ib8_FTHyi-aU6hiT_xYGA4205inRgyid3TuSeL-zCVIGP-3AFT_Tb9k2PpXgaVk4lbEm4jVAtij7SozZPqT3ZYbQgTVQ-jbZXp4V3sfwQ41UF1v0U3GYEdhC58b-sSDvbZKE8NIc\" width=\"624\" height=\"352\" \/><\/span><\/div>\n<div><\/div>\n<div><\/div>\n<div>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Contrast that to another dropoff location, say the Fort Green neighborhood \u00a0in Brooklyn (from Harlem). This is a $47 dollar ride taking an average of 57 mins during rush hour, and also provides ample pickup opportunities within the Fort Green area as indicated by the geo heatmap. <\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">To take this one step further, which areas should a cab operator deploy their asset? <\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">The following chart helps to answer that question, providing the top average fares across locations for a given day and hour of the day. <\/span><\/p>\n<h3 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 16pt;margin-bottom: 4pt\"><span style=\"font-size: 18.666666666666664px;font-family: Arial;color: #434343;background-color: transparent;font-weight: 400;vertical-align: baseline\">Top Fares By Locations by Date\/Time<\/span><\/h3>\n<p><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><img loading=\"lazy\" decoding=\"async\" style=\"border-style: none\" src=\"https:\/\/lh3.googleusercontent.com\/0AYpJLuclaET1U6l3j_8nTuevMHQfbaTi4Gld_4deRipM_CBZF9ESyK5lWsN_Otot3xEH3X3xjPlHj5frnEqxJabF4GKuF8anjiGFOvfA94i_TnqUIaT_Bf2qar94YRDop6CsMM1\" width=\"624\" height=\"352\" \/><\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">So it looks like for Tuesdays from 8-9 AM, Nkew Gardens neighborhood yields the highest average pickup fare, whereas Saturday night at 11PM, the pole position goes to the Jamaica neighborhood.<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 16pt;margin-bottom: 4pt\"><span style=\"font-size: 18.666666666666664px;font-family: Arial;color: #434343;background-color: transparent;font-weight: 400;vertical-align: baseline\">Summary<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Gone are the the days of long drawn out ETL processes or shoehorning semi-structured data into relational formats for analytics purposes. With Cloud9 Charts, you can leverage N1QL natively to derive immediate, actionable insights that can be shared and embedded in a jiffy. <\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #000000;background-color: transparent;font-style: italic;vertical-align: baseline\">Special thanks to Prasad Varakur, Chin Hong and the rest of the Couchbase team for their hands-on support with Couchbase deployment and query optimization.<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 16pt;margin-bottom: 4pt\"><span style=\"font-size: 18.666666666666664px;font-family: Arial;color: #434343;background-color: transparent;font-weight: 400;vertical-align: baseline\">Resources:<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><a style=\"text-decoration: none\" href=\"https:\/\/cloud9charts.com\/couchbase\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #1155cc;background-color: transparent;text-decoration: underline;vertical-align: baseline\">Instant Analytics on Couchbase<\/span><\/a><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><a style=\"text-decoration: none\" href=\"https:\/\/www.youtube.com\/watch?v=T2v__pDTTMw\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #1155cc;background-color: transparent;text-decoration: underline;vertical-align: baseline\">Couchbase Connect, live talk on the taxi dataset<\/span><\/a><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><a style=\"text-decoration: none\" href=\"https:\/\/www.cloud9charts.com\/docs\/couchbase.html\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #1155cc;background-color: transparent;text-decoration: underline;vertical-align: baseline\">Couchbase-Cloud9 Charts documentation<\/span><\/a><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><a style=\"text-decoration: none\" href=\"https:\/\/www.cloud9charts.com\/docs\/multi-datasource-joins.html\"><span style=\"font-size: 14.666666666666666px;font-family: Arial;color: #1155cc;background-color: transparent;text-decoration: underline;vertical-align: baseline\">Multi-Datasource Joins<\/span><\/a><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"text-decoration: underline;font-size: 14.666666666666666px;font-family: Arial;color: #1155cc;background-color: transparent;vertical-align: baseline\"><a style=\"text-decoration: none\" href=\"https:\/\/cloud9charts.com\/docs\/predictive-analytics.html\">Predictive Analytics<\/a><\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>This is a guest post by Jay Gopalakrishnan. Jay is the founder of Cloud9 Charts, an analytics platform built for modern data architectures, featuring native support for Couchbase and N1QL. Follow them on twitter @cloud9charts This post uses the NYC [&hellip;]<\/p>\n","protected":false},"author":81,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1812],"tags":[1834,1832,1831],"ppma_author":[9048],"class_list":["post-2497","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-n1ql-query","tag-charts","tag-cloud9charts","tag-native-analytics"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Native Analytics on Couchbase with Cloud9 Charts<\/title>\n<meta name=\"description\" content=\"Learn using Cloud9 Charts how you can leverage N1QL natively to derive immediate, actionable insights that can be shared and embedded in a jiffy.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Taxi Ride Analysis - Native Analytics on Couchbase with Cloud9 Charts\" \/>\n<meta property=\"og:description\" content=\"Learn using Cloud9 Charts how you can leverage N1QL natively to derive immediate, actionable insights that can be shared and embedded in a jiffy.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-18T10:07:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-09T14:26:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lh6.googleusercontent.com\/ytFgkTvqQDYr6Su_bPX0tCvS8jzVGRR1Ex-FjmTd7oPRPfkfUlFhKZ6CBqSOfceXjNLxilbAtgR_rRt7rX34fEcWyuYmhU-y8ymCN5CMTxDMjA_d9E9hShrbVFNWPZnfNyPQur9-\" \/>\n<meta name=\"author\" content=\"Jay Gopalakrishnan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jay Gopalakrishnan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/\"},\"author\":{\"name\":\"Jay Gopalakrishnan\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/07fff93a5ea5f3c42de4425be5f1d95c\"},\"headline\":\"Taxi Ride Analysis &#8211; Native Analytics on Couchbase with Cloud9 Charts\",\"datePublished\":\"2017-01-18T10:07:23+00:00\",\"dateModified\":\"2025-10-09T14:26:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/\"},\"wordCount\":1015,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"charts\",\"cloud9charts\",\"native analytics\"],\"articleSection\":[\"Couchbase Server\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/\",\"name\":\"Native Analytics on Couchbase with Cloud9 Charts\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-01-18T10:07:23+00:00\",\"dateModified\":\"2025-10-09T14:26:22+00:00\",\"description\":\"Learn using Cloud9 Charts how you can leverage N1QL natively to derive immediate, actionable insights that can be shared and embedded in a jiffy.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Taxi Ride Analysis &#8211; Native Analytics on Couchbase with Cloud9 Charts\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/07fff93a5ea5f3c42de4425be5f1d95c\",\"name\":\"Jay Gopalakrishnan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8763f637bc834e4b4c53aa07c02b1195\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a52fb3d897cac4659cb7bc376619560b519528d73c5d81f488784c227c71f12b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a52fb3d897cac4659cb7bc376619560b519528d73c5d81f488784c227c71f12b?s=96&d=mm&r=g\",\"caption\":\"Jay Gopalakrishnan\"},\"description\":\"Jay is the founder &amp; CEO of Knowi, formerly known as Cloud9 Charts, an analytics platform built for modern data architectures, featuring native support for Couchbase and N1QL. Additionally, Jay Gopalakrishnan has had 3 past jobs including Product &amp; Engineering at Mowingo.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/jay-gopalakrishnan\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Native Analytics on Couchbase with Cloud9 Charts","description":"Learn using Cloud9 Charts how you can leverage N1QL natively to derive immediate, actionable insights that can be shared and embedded in a jiffy.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/","og_locale":"en_US","og_type":"article","og_title":"Taxi Ride Analysis - Native Analytics on Couchbase with Cloud9 Charts","og_description":"Learn using Cloud9 Charts how you can leverage N1QL natively to derive immediate, actionable insights that can be shared and embedded in a jiffy.","og_url":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-01-18T10:07:23+00:00","article_modified_time":"2025-10-09T14:26:22+00:00","og_image":[{"url":"https:\/\/lh6.googleusercontent.com\/ytFgkTvqQDYr6Su_bPX0tCvS8jzVGRR1Ex-FjmTd7oPRPfkfUlFhKZ6CBqSOfceXjNLxilbAtgR_rRt7rX34fEcWyuYmhU-y8ymCN5CMTxDMjA_d9E9hShrbVFNWPZnfNyPQur9-","type":"","width":"","height":""}],"author":"Jay Gopalakrishnan","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jay Gopalakrishnan","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/"},"author":{"name":"Jay Gopalakrishnan","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/07fff93a5ea5f3c42de4425be5f1d95c"},"headline":"Taxi Ride Analysis &#8211; Native Analytics on Couchbase with Cloud9 Charts","datePublished":"2017-01-18T10:07:23+00:00","dateModified":"2025-10-09T14:26:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/"},"wordCount":1015,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["charts","cloud9charts","native analytics"],"articleSection":["Couchbase Server","SQL++ \/ N1QL Query"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/","url":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/","name":"Native Analytics on Couchbase with Cloud9 Charts","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-01-18T10:07:23+00:00","dateModified":"2025-10-09T14:26:22+00:00","description":"Learn using Cloud9 Charts how you can leverage N1QL natively to derive immediate, actionable insights that can be shared and embedded in a jiffy.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/taxi-ride-analysis-native-analytics-on-couchbase-with-cloud9-charts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Taxi Ride Analysis &#8211; Native Analytics on Couchbase with Cloud9 Charts"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/07fff93a5ea5f3c42de4425be5f1d95c","name":"Jay Gopalakrishnan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8763f637bc834e4b4c53aa07c02b1195","url":"https:\/\/secure.gravatar.com\/avatar\/a52fb3d897cac4659cb7bc376619560b519528d73c5d81f488784c227c71f12b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a52fb3d897cac4659cb7bc376619560b519528d73c5d81f488784c227c71f12b?s=96&d=mm&r=g","caption":"Jay Gopalakrishnan"},"description":"Jay is the founder &amp; CEO of Knowi, formerly known as Cloud9 Charts, an analytics platform built for modern data architectures, featuring native support for Couchbase and N1QL. Additionally, Jay Gopalakrishnan has had 3 past jobs including Product &amp; Engineering at Mowingo.","url":"https:\/\/www.couchbase.com\/blog\/author\/jay-gopalakrishnan\/"}]}},"authors":[{"term_id":9048,"user_id":81,"is_guest":0,"slug":"jay-gopalakrishnan","display_name":"Jay Gopalakrishnan","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/a52fb3d897cac4659cb7bc376619560b519528d73c5d81f488784c227c71f12b?s=96&d=mm&r=g","author_category":"","last_name":"Gopalakrishnan","first_name":"Jay","job_title":"","user_url":"","description":"Jay is the founder &amp; CEO of Knowi, formerly known as Cloud9 Charts, an analytics platform built for modern data architectures, featuring native support for Couchbase and N1QL. Additionally, Jay Gopalakrishnan has had 3 past jobs including Product &amp; Engineering at Mowingo."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2497","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/81"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=2497"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2497\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=2497"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=2497"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=2497"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=2497"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}