VerticaPy

Python API for Vertica Data Science at Scale

DBLINK in VerticaPy

Introduction

Starting with VerticaPy 0.12.0, you can work with other databases, such as PostgresQL and mySQL, using DBLINK functionality. DBLINK is a Vertica User Defined Transform Function coded in C++ that runs SQL against other databases. To setup and learn more about DBLINK in Vertica, please view the github repo.

In order to use this new functionality, we first need to install the ODBC driver and manager, as well as configure DBLINK on all nodes of the cluster. Configuration entails three files:

  • dblink.cids
  • odbc.ini
  • odbcinst.ini

For more information about requirements, see the github repo.

These files provide the host server address, username, and password, as well as the database name that we want to access. In future versions, we are planning to simplify this process and automate the creation of these files.

In the next section, let's work through an example of a database in PostgreSQL.

Connecting to an External Database

In [1]:
# Importing VerticaPy
import verticapy as vp

We first need to provide the connection information that we have set up in the Connection Identifier Database file (dblink.cids). We can select a special character symbol to identify this connection.

Let's try to set up a connection with an external PostgreSQL database, which we name "pgdb". The connection details for "pgdb", including server name, user name etc., are in the configuration files mentioned in the introduction section.

In [2]:
# Setting up a connection with a database with the alias "pgdb"
vp.set_external_connection(cid = "pgdb",
                           rowset = 500,
                           symbol = "&")

Creating a vDataFrame

We can create a vDataFrame from a table stored in an external database by setting the 'external' parameter to True. SQL can be used to fetch required data, and we can provide an identifying symbol that can be used for fetching perform queries with SQL.

In [3]:
# Creating a vDataFrame using an SQL query by setting external = True.
tab_data = vp.vDataFrame(input_relation = "airports",
                         external = True,
                         symbol = "&")
tab_data
Out[3]:
Abc
IATA_CODE
Varchar(3)
Abc
Varchar(100)
Abc
CITY
Varchar(60)
Abc
STATE
Varchar(2)
Abc
COUNTRY
Varchar(100)
🌎
LATITUDE
Numeric(30)
🌎
LONGITUDE
Numeric(30)
1ABEAllentownPAUSA40.65236-75.4404
2ABIAbileneTXUSA32.41132-99.6819
3ABQAlbuquerqueNMUSA35.04022-106.60919
4ABRAberdeenSDUSA45.44906-98.42183
5ABYAlbanyGAUSA31.53552-84.19447
6ACKNantucketMAUSA41.25305-70.06018
7ACTWacoTXUSA31.61129-97.23052
8ACVArcata/EurekaCAUSA40.97812-124.10862
9ACYAtlantic CityNJUSA39.45758-74.57717
10ADKAdakAKUSA51.87796-176.64603
11ADQKodiakAKUSA57.74997-152.49386
12AEXAlexandriaLAUSA31.32737-92.54856
13AGSAugustaGAUSA33.36996-81.9645
14AKNKing SalmonAKUSA58.6768-156.64922
15ALBAlbanyNYUSA42.74812-73.80298
16ALOWaterlooIAUSA42.55708-92.40034
17AMAAmarilloTXUSA35.21937-101.70593
18ANCAnchorageAKUSA61.17432-149.99619
19APNAlpenaMIUSA45.07807-83.56029
20ASEAspenCOUSA39.22316-106.86885
21ATLAtlantaGAUSA33.64044-84.42694
22ATWAppletonWIUSA44.25741-88.51948
23AUSAustinTXUSA30.19453-97.66987
24AVLAshevilleNCUSA35.43619-82.54181
25AVPWilkes-Barre/ScrantonPAUSA41.33815-75.72427
26AZOKalamazooMIUSA42.23488-85.55206
27BDLWindsor LocksCTUSA41.93887-72.68323
28BETBethelAKUSA60.77978-161.838
29BFLBakersfieldCAUSA35.4336-119.05677
30BGMBinghamtonNYUSA42.20848-75.97961
31BGRBangorMEUSA44.80744-68.82814
32BHMBirminghamALUSA33.56294-86.75355
33BILBillingsMTUSA45.80766-108.54286
34BISBismarckNDUSA46.77411-100.74672
35BJIBemidjiMNUSA47.50942-94.93372
36BLIBellinghamWAUSA48.79275-122.53753
37BMIBloomingtonILUSA40.47799-88.91595
38BNANashvilleTNUSA36.12448-86.67818
39BOIBoiseIDUSA43.56444-116.22278
40BOSBostonMAUSA42.36435-71.00518
41BPTBeaumont/Port ArthurTXUSA29.95083-94.02069
42BQKBrunswickGAUSA31.25903-81.46631
43BQNAguadillaPRUSA18.49486-67.12944
44BRDBrainerdMNUSA46.39786-94.13723
45BROBrownsvilleTXUSA25.90683-97.42586
46BRWBarrowAKUSA71.28545-156.766
47BTMButteMTUSA45.9548-112.49746
48BTRBaton RougeLAUSA30.53316-91.14963
49BTVBurlingtonVTUSA44.473-73.15031
50BUFBuffaloNYUSA42.94052-78.73217
51BURBurbankCAUSA34.20062-118.3585
52BWIBaltimoreMDUSA39.1754-76.6682
53BZNBozemanMTUSA45.7769-111.15301
54CAEColumbiaSCUSA33.93884-81.11954
55CAKAkronOHUSA40.91631-81.44247
56CDCCedar CityUTUSA37.70097-113.09858
57CDVCordovaAKUSA60.49183-145.47765
58CECCrescent CityCAUSA41.78016-124.23653
59CHAChattanoogaTNUSA35.03527-85.20379
60CHOCharlottesvilleVAUSA38.13864-78.45286
61CHSCharlestonSCUSA32.89865-80.04051
62CIDCedar RapidsIAUSA41.88459-91.71087
63CIUSault Ste. MarieMIUSA46.25075-84.47239
64CLDSan DiegoCAUSA33.12723-117.27873
65CLEClevelandOHUSA41.41089-81.8494
66CLLCollege StationTXUSA30.58859-96.36382
67CLTCharlotteNCUSA35.21401-80.94313
68CMHColumbusOHUSA39.99799-82.89188
69CMIChampaign/UrbanaILUSA40.03925-88.27806
70CMXHancockMIUSA47.16842-88.48906
71CNYMoabUTUSA38.75496-109.75484
72CODCodyWYUSA44.52019-109.0238
73COSColorado SpringsCOUSA38.80581-104.70025
74COUColumbiaMOUSA38.81809-92.21963
75CPRCasperWYUSA42.90836-106.46447
76CRPCorpus ChristiTXUSA27.77036-97.50122
77CRWCharlestonWVUSA38.37315-81.59319
78CSGColumbusGAUSA32.51633-84.93886
79CVGCovingtonKYUSA39.04614-84.66217
80CWAMosineeWIUSA44.77762-89.66678
81DABDaytona BeachFLUSA29.17992-81.05806
82DALDallasTXUSA32.84711-96.85177
83DAYDaytonOHUSA39.90238-84.21938
84DBQDubuqueIAUSA42.40296-90.70917
85DCAArlingtonVAUSA38.85208-77.03772
86DENDenverCOUSA39.85841-104.667
87DFWDallas-Fort WorthTXUSA32.89595-97.0372
88DHNDothanALUSA31.32134-85.44963
89DIKDickinsonNDUSA46.79739-102.80195
90DLGDillinghamAKUSA59.04541-158.50334
91DLHDuluthMNUSA46.84209-92.19365
92DRODurangoCOUSA37.15152-107.75377
93DSMDes MoinesIAUSA41.53493-93.66068
94DTWDetroitMIUSA42.21206-83.34884
95DVLDevils LakeNDUSA48.11425-98.90878
96EAUEau ClaireWIUSA44.86526-91.48507
97ECPPanama CityFLUSA[null][null]
98EGEEagleCOUSA39.64257-106.9177
99EKOElkoNVUSA40.82493-115.7917
100ELMElmiraNYUSA42.15991-76.89144
Rows: 1-100 | Columns: 7

All vDataFrame functions are available for this imported table. For example, we can get all the column names:

In [ ]:
# Get all columns of the dataset
tab_data.get_columns()

Or the column data types:

In [ ]:
# Get data types of all columns inside the dataset
tab_data.dtypes()

Or the count of the datapoints:

In [6]:
# Counting all elements inside each column
tab_data.count()
Out[6]:
count
"IATA_CODE"322.0
"AIRPORT"322.0
"CITY"322.0
"STATE"322.0
"COUNTRY"322.0
"LATITUDE"319.0
"LONGITUDE"319.0
Rows: 1-7 | Columns: 2

Note: Every time we perform these calculations or call the vDataFrame, it runs the SQL query to fetch all the data from the external database. After retrieving the entire table, the operations are computed by Vertica. In order to push the queries to a remote database, we can use the option "sql_push_ext". When we create a vDataFrame with this option activated, all the aggregations are done on the external database using SQL.

In [7]:
# Creating a vDataFrame and setting sql_push_ext to True, which tries 
# to push SQL queries to external database (where possible).
Ext_Table=vp.vDataFrame(input_relation = "airports",
                        external = True,
                        symbol = "&",
                        sql_push_ext = True)
Ext_Table
Out[7]:
Abc
IATA_CODE
Varchar(3)
Abc
Varchar(100)
Abc
CITY
Varchar(60)
Abc
STATE
Varchar(2)
Abc
COUNTRY
Varchar(100)
🌎
LATITUDE
Numeric(30)
🌎
LONGITUDE
Numeric(30)
1ABEAllentownPAUSA40.65236-75.4404
2ABIAbileneTXUSA32.41132-99.6819
3ABQAlbuquerqueNMUSA35.04022-106.60919
4ABRAberdeenSDUSA45.44906-98.42183
5ABYAlbanyGAUSA31.53552-84.19447
6ACKNantucketMAUSA41.25305-70.06018
7ACTWacoTXUSA31.61129-97.23052
8ACVArcata/EurekaCAUSA40.97812-124.10862
9ACYAtlantic CityNJUSA39.45758-74.57717
10ADKAdakAKUSA51.87796-176.64603
11ADQKodiakAKUSA57.74997-152.49386
12AEXAlexandriaLAUSA31.32737-92.54856
13AGSAugustaGAUSA33.36996-81.9645
14AKNKing SalmonAKUSA58.6768-156.64922
15ALBAlbanyNYUSA42.74812-73.80298
16ALOWaterlooIAUSA42.55708-92.40034
17AMAAmarilloTXUSA35.21937-101.70593
18ANCAnchorageAKUSA61.17432-149.99619
19APNAlpenaMIUSA45.07807-83.56029
20ASEAspenCOUSA39.22316-106.86885
21ATLAtlantaGAUSA33.64044-84.42694
22ATWAppletonWIUSA44.25741-88.51948
23AUSAustinTXUSA30.19453-97.66987
24AVLAshevilleNCUSA35.43619-82.54181
25AVPWilkes-Barre/ScrantonPAUSA41.33815-75.72427
26AZOKalamazooMIUSA42.23488-85.55206
27BDLWindsor LocksCTUSA41.93887-72.68323
28BETBethelAKUSA60.77978-161.838
29BFLBakersfieldCAUSA35.4336-119.05677
30BGMBinghamtonNYUSA42.20848-75.97961
31BGRBangorMEUSA44.80744-68.82814
32BHMBirminghamALUSA33.56294-86.75355
33BILBillingsMTUSA45.80766-108.54286
34BISBismarckNDUSA46.77411-100.74672
35BJIBemidjiMNUSA47.50942-94.93372
36BLIBellinghamWAUSA48.79275-122.53753
37BMIBloomingtonILUSA40.47799-88.91595
38BNANashvilleTNUSA36.12448-86.67818
39BOIBoiseIDUSA43.56444-116.22278
40BOSBostonMAUSA42.36435-71.00518
41BPTBeaumont/Port ArthurTXUSA29.95083-94.02069
42BQKBrunswickGAUSA31.25903-81.46631
43BQNAguadillaPRUSA18.49486-67.12944
44BRDBrainerdMNUSA46.39786-94.13723
45BROBrownsvilleTXUSA25.90683-97.42586
46BRWBarrowAKUSA71.28545-156.766
47BTMButteMTUSA45.9548-112.49746
48BTRBaton RougeLAUSA30.53316-91.14963
49BTVBurlingtonVTUSA44.473-73.15031
50BUFBuffaloNYUSA42.94052-78.73217
51BURBurbankCAUSA34.20062-118.3585
52BWIBaltimoreMDUSA39.1754-76.6682
53BZNBozemanMTUSA45.7769-111.15301
54CAEColumbiaSCUSA33.93884-81.11954
55CAKAkronOHUSA40.91631-81.44247
56CDCCedar CityUTUSA37.70097-113.09858
57CDVCordovaAKUSA60.49183-145.47765
58CECCrescent CityCAUSA41.78016-124.23653
59CHAChattanoogaTNUSA35.03527-85.20379
60CHOCharlottesvilleVAUSA38.13864-78.45286
61CHSCharlestonSCUSA32.89865-80.04051
62CIDCedar RapidsIAUSA41.88459-91.71087
63CIUSault Ste. MarieMIUSA46.25075-84.47239
64CLDSan DiegoCAUSA33.12723-117.27873
65CLEClevelandOHUSA41.41089-81.8494
66CLLCollege StationTXUSA30.58859-96.36382
67CLTCharlotteNCUSA35.21401-80.94313
68CMHColumbusOHUSA39.99799-82.89188
69CMIChampaign/UrbanaILUSA40.03925-88.27806
70CMXHancockMIUSA47.16842-88.48906
71CNYMoabUTUSA38.75496-109.75484
72CODCodyWYUSA44.52019-109.0238
73COSColorado SpringsCOUSA38.80581-104.70025
74COUColumbiaMOUSA38.81809-92.21963
75CPRCasperWYUSA42.90836-106.46447
76CRPCorpus ChristiTXUSA27.77036-97.50122
77CRWCharlestonWVUSA38.37315-81.59319
78CSGColumbusGAUSA32.51633-84.93886
79CVGCovingtonKYUSA39.04614-84.66217
80CWAMosineeWIUSA44.77762-89.66678
81DABDaytona BeachFLUSA29.17992-81.05806
82DALDallasTXUSA32.84711-96.85177
83DAYDaytonOHUSA39.90238-84.21938
84DBQDubuqueIAUSA42.40296-90.70917
85DCAArlingtonVAUSA38.85208-77.03772
86DENDenverCOUSA39.85841-104.667
87DFWDallas-Fort WorthTXUSA32.89595-97.0372
88DHNDothanALUSA31.32134-85.44963
89DIKDickinsonNDUSA46.79739-102.80195
90DLGDillinghamAKUSA59.04541-158.50334
91DLHDuluthMNUSA46.84209-92.19365
92DRODurangoCOUSA37.15152-107.75377
93DSMDes MoinesIAUSA41.53493-93.66068
94DTWDetroitMIUSA42.21206-83.34884
95DVLDevils LakeNDUSA48.11425-98.90878
96EAUEau ClaireWIUSA44.86526-91.48507
97ECPPanama CityFLUSA[null][null]
98EGEEagleCOUSA39.64257-106.9177
99EKOElkoNVUSA40.82493-115.7917
100ELMElmiraNYUSA42.15991-76.89144
Rows: 1-100 | Columns: 7

If we look at the SQL generated in background, we can see that it pushes the aggregation query to the database.

In [8]:
# Turning on SQL output to view the queries
vp.set_option("sql_on",True)

Let's look at the count query again, and see how VerticaPy is pushing it to the external database.

In [9]:
# Counting elements in each column
Ext_Table.count()

Computing the different aggregations.

  SELECT
    DBLINK(USING PARAMETERS cid='pgdb', query=' SELECT COUNT("IATA_CODE"), COUNT("AIRPORT"), COUNT("CITY"), COUNT("STATE"), COUNT("COUNTRY"), COUNT("LATITUDE"), COUNT("LONGITUDE")   FROM ( SELECT "IATA_CODE", "AIRPORT", "CITY", "STATE", "COUNTRY", "LATITUDE", "LONGITUDE"   FROM ( SELECT *   FROM airports)   VERTICAPY_SUBTABLE)   VERTICAPY_SUBTABLE LIMIT 1', rowset=500) OVER ()
Out[9]:
count
"IATA_CODE"322.0
"AIRPORT"322.0
"CITY"322.0
"STATE"322.0
"COUNTRY"322.0
"LATITUDE"319.0
"LONGITUDE"319.0
Rows: 1-7 | Columns: 2

Let's also look at the "min" method:

In [10]:
# Finding minimum in the ID column of Ext_Table
Ext_Table["LATITUDE"].min()

Computing the different aggregations.

  SELECT
    DBLINK(USING PARAMETERS cid='pgdb', query=' SELECT MIN("LATITUDE")   FROM ( SELECT "IATA_CODE", "AIRPORT", "CITY", "STATE", "COUNTRY", "LATITUDE", "LONGITUDE"   FROM ( SELECT *   FROM airports)   VERTICAPY_SUBTABLE)   VERTICAPY_SUBTABLE LIMIT 1', rowset=500) OVER ()
Out[10]:
13.48345

For the above examples, the queries were pushed to the external database.

If the function is unique to Vertica, it automatically fetches the data from the external database to compute on the Vertica server. Let's try an example with the describe function, which is a unique Vertica function.

In [11]:
# Describe the main attributes of numerical columns in the Ext_table
Ext_Table.describe()

Getting the version.

  SELECT
    /*+LABEL('utilities.version')*/ version()

Computing the descriptive statistics of all numerical columns using SUMMARIZE_NUMCOL.

  SELECT
    /*+LABEL('vDataframe.describe')*/ SUMMARIZE_NUMCOL("LATITUDE", "LONGITUDE") OVER ()  
  FROM
(
  SELECT
    "IATA_CODE",
    "AIRPORT",
    "CITY",
    "STATE",
    "COUNTRY",
    "LATITUDE",
    "LONGITUDE"  
  FROM
(
  SELECT
    DBLINK(USING PARAMETERS cid='pgdb', query=' SELECT *   FROM airports', rowset=500) OVER ())  
VERTICAPY_SUBTABLE)  
VERTICAPY_SUBTABLE
Out[11]:
count
mean
std
min
approx_25%
approx_50%
approx_75%
max
"LATITUDE"31938.98124391849538.6167355810180413.4834533.6520439.2976143.15467571.28545
"LONGITUDE"319-98.378964451410721.5234920464981-176.64603-110.839385-93.40307-82.722995-64.79856
Rows: 1-2 | Columns: 9

We can see that the data was fetched from the external database to be computed in Vertica.

(Now we can turn off SQL display).

In [12]:
# Turning off SQL display
vp.set_option("sql_on",
              False)

Using SQL Magic Cells

In [2]:
# Load extension for running SQL magic cells
%load_ext verticapy.sql

We can use magic cells to call external tables using special characters like "$$$" and "%%%". If we have multiple external databases, we can specify special characters for each.

This makes writing queries a lot more convenient and visually appealing!

Now we will try to get fetch data from our external database "pgdb, whose special character is "&".

In [14]:
%%sql
/* Getting all data from airports table which is placed in the PostgreSQL database represented by "&". */
SELECT * FROM &&& airports &&&;
Execution: 0.106s
Out[14]:
Abc
IATA_CODE
Varchar(3)
Abc
Varchar(100)
Abc
CITY
Varchar(60)
Abc
STATE
Varchar(2)
Abc
COUNTRY
Varchar(100)
🌎
LATITUDE
Numeric(30)
🌎
LONGITUDE
Numeric(30)
1ABEAllentownPAUSA40.65236-75.4404
2ABIAbileneTXUSA32.41132-99.6819
3ABQAlbuquerqueNMUSA35.04022-106.60919
4ABRAberdeenSDUSA45.44906-98.42183
5ABYAlbanyGAUSA31.53552-84.19447
6ACKNantucketMAUSA41.25305-70.06018
7ACTWacoTXUSA31.61129-97.23052
8ACVArcata/EurekaCAUSA40.97812-124.10862
9ACYAtlantic CityNJUSA39.45758-74.57717
10ADKAdakAKUSA51.87796-176.64603
11ADQKodiakAKUSA57.74997-152.49386
12AEXAlexandriaLAUSA31.32737-92.54856
13AGSAugustaGAUSA33.36996-81.9645
14AKNKing SalmonAKUSA58.6768-156.64922
15ALBAlbanyNYUSA42.74812-73.80298
16ALOWaterlooIAUSA42.55708-92.40034
17AMAAmarilloTXUSA35.21937-101.70593
18ANCAnchorageAKUSA61.17432-149.99619
19APNAlpenaMIUSA45.07807-83.56029
20ASEAspenCOUSA39.22316-106.86885
21ATLAtlantaGAUSA33.64044-84.42694
22ATWAppletonWIUSA44.25741-88.51948
23AUSAustinTXUSA30.19453-97.66987
24AVLAshevilleNCUSA35.43619-82.54181
25AVPWilkes-Barre/ScrantonPAUSA41.33815-75.72427
26AZOKalamazooMIUSA42.23488-85.55206
27BDLWindsor LocksCTUSA41.93887-72.68323
28BETBethelAKUSA60.77978-161.838
29BFLBakersfieldCAUSA35.4336-119.05677
30BGMBinghamtonNYUSA42.20848-75.97961
31BGRBangorMEUSA44.80744-68.82814
32BHMBirminghamALUSA33.56294-86.75355
33BILBillingsMTUSA45.80766-108.54286
34BISBismarckNDUSA46.77411-100.74672
35BJIBemidjiMNUSA47.50942-94.93372
36BLIBellinghamWAUSA48.79275-122.53753
37BMIBloomingtonILUSA40.47799-88.91595
38BNANashvilleTNUSA36.12448-86.67818
39BOIBoiseIDUSA43.56444-116.22278
40BOSBostonMAUSA42.36435-71.00518
41BPTBeaumont/Port ArthurTXUSA29.95083-94.02069
42BQKBrunswickGAUSA31.25903-81.46631
43BQNAguadillaPRUSA18.49486-67.12944
44BRDBrainerdMNUSA46.39786-94.13723
45BROBrownsvilleTXUSA25.90683-97.42586
46BRWBarrowAKUSA71.28545-156.766
47BTMButteMTUSA45.9548-112.49746
48BTRBaton RougeLAUSA30.53316-91.14963
49BTVBurlingtonVTUSA44.473-73.15031
50BUFBuffaloNYUSA42.94052-78.73217
51BURBurbankCAUSA34.20062-118.3585
52BWIBaltimoreMDUSA39.1754-76.6682
53BZNBozemanMTUSA45.7769-111.15301
54CAEColumbiaSCUSA33.93884-81.11954
55CAKAkronOHUSA40.91631-81.44247
56CDCCedar CityUTUSA37.70097-113.09858
57CDVCordovaAKUSA60.49183-145.47765
58CECCrescent CityCAUSA41.78016-124.23653
59CHAChattanoogaTNUSA35.03527-85.20379
60CHOCharlottesvilleVAUSA38.13864-78.45286
61CHSCharlestonSCUSA32.89865-80.04051
62CIDCedar RapidsIAUSA41.88459-91.71087
63CIUSault Ste. MarieMIUSA46.25075-84.47239
64CLDSan DiegoCAUSA33.12723-117.27873
65CLEClevelandOHUSA41.41089-81.8494
66CLLCollege StationTXUSA30.58859-96.36382
67CLTCharlotteNCUSA35.21401-80.94313
68CMHColumbusOHUSA39.99799-82.89188
69CMIChampaign/UrbanaILUSA40.03925-88.27806
70CMXHancockMIUSA47.16842-88.48906
71CNYMoabUTUSA38.75496-109.75484
72CODCodyWYUSA44.52019-109.0238
73COSColorado SpringsCOUSA38.80581-104.70025
74COUColumbiaMOUSA38.81809-92.21963
75CPRCasperWYUSA42.90836-106.46447
76CRPCorpus ChristiTXUSA27.77036-97.50122
77CRWCharlestonWVUSA38.37315-81.59319
78CSGColumbusGAUSA32.51633-84.93886
79CVGCovingtonKYUSA39.04614-84.66217
80CWAMosineeWIUSA44.77762-89.66678
81DABDaytona BeachFLUSA29.17992-81.05806
82DALDallasTXUSA32.84711-96.85177
83DAYDaytonOHUSA39.90238-84.21938
84DBQDubuqueIAUSA42.40296-90.70917
85DCAArlingtonVAUSA38.85208-77.03772
86DENDenverCOUSA39.85841-104.667
87DFWDallas-Fort WorthTXUSA32.89595-97.0372
88DHNDothanALUSA31.32134-85.44963
89DIKDickinsonNDUSA46.79739-102.80195
90DLGDillinghamAKUSA59.04541-158.50334
91DLHDuluthMNUSA46.84209-92.19365
92DRODurangoCOUSA37.15152-107.75377
93DSMDes MoinesIAUSA41.53493-93.66068
94DTWDetroitMIUSA42.21206-83.34884
95DVLDevils LakeNDUSA48.11425-98.90878
96EAUEau ClaireWIUSA44.86526-91.48507
97ECPPanama CityFLUSA[null][null]
98EGEEagleCOUSA39.64257-106.9177
99EKOElkoNVUSA40.82493-115.7917
100ELMElmiraNYUSA42.15991-76.89144
Columns: 7

To perform all regular queries, all we need to do is call the table with its name inside three special characters.

We'll now try out some queries:

Count the elements inside the table:

In [15]:
%%sql
/* Counting all elements inside the airports table in PostgreSQL. */
SELECT COUNT(*) FROM &&& airports &&&;
Execution: 0.107s
Out[15]:
123
COUNT
Integer
1322
Column: COUNT | Type: Integer

Find the IATA_CODE where CITY is "Allentown":

In [16]:
%%sql
/* Finding IATA_CODE where the CITY is "Allentown" in the airports table. */
SELECT IATA_CODE
FROM &&& airports &&&
WHERE CITY='Allentown';
Execution: 0.106s
Out[16]:
Abc
IATA_CODE
Varchar(3)
1ABE
Column: IATA_CODE | Type: Varchar(3)

Note: Any query that we write inside the "&&&" signs is also sent to the external database to be run.

So, instead of just calling the whole table, we can query it using the same special character padding.

For example, let's select all elements inside the airports table:

In [17]:
%%sql
/* Getting all data from airports table which is placed in the PostgreSQL database represented by "$". */
&&& SELECT * FROM airports &&&;
Execution: 0.109s
Out[17]:
Abc
IATA_CODE
Varchar(3)
Abc
Varchar(100)
Abc
CITY
Varchar(60)
Abc
STATE
Varchar(2)
Abc
COUNTRY
Varchar(100)
🌎
LATITUDE
Numeric(30)
🌎
LONGITUDE
Numeric(30)
1ABEAllentownPAUSA40.65236-75.4404
2ABIAbileneTXUSA32.41132-99.6819
3ABQAlbuquerqueNMUSA35.04022-106.60919
4ABRAberdeenSDUSA45.44906-98.42183
5ABYAlbanyGAUSA31.53552-84.19447
6ACKNantucketMAUSA41.25305-70.06018
7ACTWacoTXUSA31.61129-97.23052
8ACVArcata/EurekaCAUSA40.97812-124.10862
9ACYAtlantic CityNJUSA39.45758-74.57717
10ADKAdakAKUSA51.87796-176.64603
11ADQKodiakAKUSA57.74997-152.49386
12AEXAlexandriaLAUSA31.32737-92.54856
13AGSAugustaGAUSA33.36996-81.9645
14AKNKing SalmonAKUSA58.6768-156.64922
15ALBAlbanyNYUSA42.74812-73.80298
16ALOWaterlooIAUSA42.55708-92.40034
17AMAAmarilloTXUSA35.21937-101.70593
18ANCAnchorageAKUSA61.17432-149.99619
19APNAlpenaMIUSA45.07807-83.56029
20ASEAspenCOUSA39.22316-106.86885
21ATLAtlantaGAUSA33.64044-84.42694
22ATWAppletonWIUSA44.25741-88.51948
23AUSAustinTXUSA30.19453-97.66987
24AVLAshevilleNCUSA35.43619-82.54181
25AVPWilkes-Barre/ScrantonPAUSA41.33815-75.72427
26AZOKalamazooMIUSA42.23488-85.55206
27BDLWindsor LocksCTUSA41.93887-72.68323
28BETBethelAKUSA60.77978-161.838
29BFLBakersfieldCAUSA35.4336-119.05677
30BGMBinghamtonNYUSA42.20848-75.97961
31BGRBangorMEUSA44.80744-68.82814
32BHMBirminghamALUSA33.56294-86.75355
33BILBillingsMTUSA45.80766-108.54286
34BISBismarckNDUSA46.77411-100.74672
35BJIBemidjiMNUSA47.50942-94.93372
36BLIBellinghamWAUSA48.79275-122.53753
37BMIBloomingtonILUSA40.47799-88.91595
38BNANashvilleTNUSA36.12448-86.67818
39BOIBoiseIDUSA43.56444-116.22278
40BOSBostonMAUSA42.36435-71.00518
41BPTBeaumont/Port ArthurTXUSA29.95083-94.02069
42BQKBrunswickGAUSA31.25903-81.46631
43BQNAguadillaPRUSA18.49486-67.12944
44BRDBrainerdMNUSA46.39786-94.13723
45BROBrownsvilleTXUSA25.90683-97.42586
46BRWBarrowAKUSA71.28545-156.766
47BTMButteMTUSA45.9548-112.49746
48BTRBaton RougeLAUSA30.53316-91.14963
49BTVBurlingtonVTUSA44.473-73.15031
50BUFBuffaloNYUSA42.94052-78.73217
51BURBurbankCAUSA34.20062-118.3585
52BWIBaltimoreMDUSA39.1754-76.6682
53BZNBozemanMTUSA45.7769-111.15301
54CAEColumbiaSCUSA33.93884-81.11954
55CAKAkronOHUSA40.91631-81.44247
56CDCCedar CityUTUSA37.70097-113.09858
57CDVCordovaAKUSA60.49183-145.47765
58CECCrescent CityCAUSA41.78016-124.23653
59CHAChattanoogaTNUSA35.03527-85.20379
60CHOCharlottesvilleVAUSA38.13864-78.45286
61CHSCharlestonSCUSA32.89865-80.04051
62CIDCedar RapidsIAUSA41.88459-91.71087
63CIUSault Ste. MarieMIUSA46.25075-84.47239
64CLDSan DiegoCAUSA33.12723-117.27873
65CLEClevelandOHUSA41.41089-81.8494
66CLLCollege StationTXUSA30.58859-96.36382
67CLTCharlotteNCUSA35.21401-80.94313
68CMHColumbusOHUSA39.99799-82.89188
69CMIChampaign/UrbanaILUSA40.03925-88.27806
70CMXHancockMIUSA47.16842-88.48906
71CNYMoabUTUSA38.75496-109.75484
72CODCodyWYUSA44.52019-109.0238
73COSColorado SpringsCOUSA38.80581-104.70025
74COUColumbiaMOUSA38.81809-92.21963
75CPRCasperWYUSA42.90836-106.46447
76CRPCorpus ChristiTXUSA27.77036-97.50122
77CRWCharlestonWVUSA38.37315-81.59319
78CSGColumbusGAUSA32.51633-84.93886
79CVGCovingtonKYUSA39.04614-84.66217
80CWAMosineeWIUSA44.77762-89.66678
81DABDaytona BeachFLUSA29.17992-81.05806
82DALDallasTXUSA32.84711-96.85177
83DAYDaytonOHUSA39.90238-84.21938
84DBQDubuqueIAUSA42.40296-90.70917
85DCAArlingtonVAUSA38.85208-77.03772
86DENDenverCOUSA39.85841-104.667
87DFWDallas-Fort WorthTXUSA32.89595-97.0372
88DHNDothanALUSA31.32134-85.44963
89DIKDickinsonNDUSA46.79739-102.80195
90DLGDillinghamAKUSA59.04541-158.50334
91DLHDuluthMNUSA46.84209-92.19365
92DRODurangoCOUSA37.15152-107.75377
93DSMDes MoinesIAUSA41.53493-93.66068
94DTWDetroitMIUSA42.21206-83.34884
95DVLDevils LakeNDUSA48.11425-98.90878
96EAUEau ClaireWIUSA44.86526-91.48507
97ECPPanama CityFLUSA[null][null]
98EGEEagleCOUSA39.64257-106.9177
99EKOElkoNVUSA40.82493-115.7917
100ELMElmiraNYUSA42.15991-76.89144
Columns: 7

Now we'll run a search query to find a particular id:

In [18]:
%%sql
/* Finding IATA_CODE where the CITY is "Allentown" in the airports table. */
&&& SELECT "IATA_CODE" FROM airports WHERE "CITY"='Allentown' &&&;
Execution: 0.113s
Out[18]:
Abc
IATA_CODE
Varchar(3)
1ABE
Column: IATA_CODE | Type: Varchar(3)

We can also insert a new entry into the airports table, which is placed in the postgreSQL database represented by "&":

In [19]:
%%sql
/* Inserting an entry into the airportss table which is placed in the postgreSQL database represented by "&". */
&&& 
INSERT INTO airports 
       ("IATA_CODE", "AIRPORT",        "CITY",    "STATE", "COUNTRY", "LATITUDE", "LONGITUDE") 
VALUES ('MXX'      , 'Midway Airport', 'Chicago', 'IL',    'USA',     66.60,      35.00); 
&&&
undefined
Execution: 0.284s

Connecte Multiple Databases

You can connect and use multiple datasets from different databases.

In this example we will get:

  • Airline data from PostgreSQL
  • Airport data from MySQL
  • Flights data from Vertica

The datasets can be found here.

Airline Data in PostgreSQL

We can set up a new connection in just one line by referencing the alias inside the connection files. As before, we will provide the special character symbol that is used to invoke the connection.

In [3]:
# Setting up a connection with a database given an alias "pgdb"
vp.set_external_connection(cid="pgdb",
                           rowset=500,
                           symbol="$")

Let's look at the airline table that we have in our postgreSQL database.

In [4]:
%%sql
/* Fetch all the data from the table airports in "pgdb" database. */
SELECT * FROM $$$ airline $$$;
Execution: 0.125s
Out[4]:
Abc
IATA_CODE
Char(2)
Abc
AIRLINE
Varchar(1024)
1UAUnited Air Lines Inc.
2AAAmerican Airlines Inc.
3USUS Airways Inc.
4F9Frontier Airlines Inc.
5B6JetBlue Airways
6OOSkywest Airlines Inc.
7ASAlaska Airlines Inc.
8NKSpirit Air Lines
9WNSouthwest Airlines Co.
10DLDelta Air Lines Inc.
11EVAtlantic Southeast Airlines
12HAHawaiian Airlines Inc.
13MQAmerican Eagle Airlines Inc.
14VXVirgin America
15UAUnited Air Lines Inc.
16AAAmerican Airlines Inc.
17USUS Airways Inc.
18F9Frontier Airlines Inc.
19B6JetBlue Airways
20OOSkywest Airlines Inc.
21ASAlaska Airlines Inc.
22NKSpirit Air Lines
23WNSouthwest Airlines Co.
24DLDelta Air Lines Inc.
25EVAtlantic Southeast Airlines
26HAHawaiian Airlines Inc.
27MQAmerican Eagle Airlines Inc.
28VXVirgin America
Columns: 2

Airports Data in MySQL

We can create another new connection by providing the cid reference for our MySQL database. We'll also provide a unique special character, which is not used for any other connection.

In [5]:
# Setting up a connection with a database given an alias "mysql"
vp.set_external_connection(cid="mysql",
                           rowset=500,
                           symbol="&")

Let's take a look at the airports table that we have in our MySQL database.

In [6]:
%%sql
/* Fetch all the data from the table airports in "mysql" database */
SELECT * FROM &&& airports &&&;
Execution: 0.106s
Out[6]:
Abc
IATA_CODE
Varchar(3)
Abc
Varchar(100)
Abc
CITY
Varchar(60)
Abc
STATE
Varchar(2)
Abc
COUNTRY
Varchar(100)
🌎
LATITUDE
Numeric(30)
🌎
LONGITUDE
Numeric(30)
1ABEAllentownPAUSA40.65236-75.4404
2ABIAbileneTXUSA32.41132-99.6819
3ABQAlbuquerqueNMUSA35.04022-106.60919
4ABRAberdeenSDUSA45.44906-98.42183
5ABYAlbanyGAUSA31.53552-84.19447
6ACKNantucketMAUSA41.25305-70.06018
7ACTWacoTXUSA31.61129-97.23052
8ACVArcata/EurekaCAUSA40.97812-124.10862
9ACYAtlantic CityNJUSA39.45758-74.57717
10ADKAdakAKUSA51.87796-176.64603
11ADQKodiakAKUSA57.74997-152.49386
12AEXAlexandriaLAUSA31.32737-92.54856
13AGSAugustaGAUSA33.36996-81.9645
14AKNKing SalmonAKUSA58.6768-156.64922
15ALBAlbanyNYUSA42.74812-73.80298
16ALOWaterlooIAUSA42.55708-92.40034
17AMAAmarilloTXUSA35.21937-101.70593
18ANCAnchorageAKUSA61.17432-149.99619
19APNAlpenaMIUSA45.07807-83.56029
20ASEAspenCOUSA39.22316-106.86885
21ATLAtlantaGAUSA33.64044-84.42694
22ATWAppletonWIUSA44.25741-88.51948
23AUSAustinTXUSA30.19453-97.66987
24AVLAshevilleNCUSA35.43619-82.54181
25AVPWilkes-Barre/ScrantonPAUSA41.33815-75.72427
26AZOKalamazooMIUSA42.23488-85.55206
27BDLWindsor LocksCTUSA41.93887-72.68323
28BETBethelAKUSA60.77978-161.838
29BFLBakersfieldCAUSA35.4336-119.05677
30BGMBinghamtonNYUSA42.20848-75.97961
31BGRBangorMEUSA44.80744-68.82814
32BHMBirminghamALUSA33.56294-86.75355
33BILBillingsMTUSA45.80766-108.54286
34BISBismarckNDUSA46.77411-100.74672
35BJIBemidjiMNUSA47.50942-94.93372
36BLIBellinghamWAUSA48.79275-122.53753
37BMIBloomingtonILUSA40.47799-88.91595
38BNANashvilleTNUSA36.12448-86.67818
39BOIBoiseIDUSA43.56444-116.22278
40BOSBostonMAUSA42.36435-71.00518
41BPTBeaumont/Port ArthurTXUSA29.95083-94.02069
42BQKBrunswickGAUSA31.25903-81.46631
43BQNAguadillaPRUSA18.49486-67.12944
44BRDBrainerdMNUSA46.39786-94.13723
45BROBrownsvilleTXUSA25.90683-97.42586
46BRWBarrowAKUSA71.28545-156.766
47BTMButteMTUSA45.9548-112.49746
48BTRBaton RougeLAUSA30.53316-91.14963
49BTVBurlingtonVTUSA44.473-73.15031
50BUFBuffaloNYUSA42.94052-78.73217
51BURBurbankCAUSA34.20062-118.3585
52BWIBaltimoreMDUSA39.1754-76.6682
53BZNBozemanMTUSA45.7769-111.15301
54CAEColumbiaSCUSA33.93884-81.11954
55CAKAkronOHUSA40.91631-81.44247
56CDCCedar CityUTUSA37.70097-113.09858
57CDVCordovaAKUSA60.49183-145.47765
58CECCrescent CityCAUSA41.78016-124.23653
59CHAChattanoogaTNUSA35.03527-85.20379
60CHOCharlottesvilleVAUSA38.13864-78.45286
61CHSCharlestonSCUSA32.89865-80.04051
62CIDCedar RapidsIAUSA41.88459-91.71087
63CIUSault Ste. MarieMIUSA46.25075-84.47239
64CLDSan DiegoCAUSA33.12723-117.27873
65CLEClevelandOHUSA41.41089-81.8494
66CLLCollege StationTXUSA30.58859-96.36382
67CLTCharlotteNCUSA35.21401-80.94313
68CMHColumbusOHUSA39.99799-82.89188
69CMIChampaign/UrbanaILUSA40.03925-88.27806
70CMXHancockMIUSA47.16842-88.48906
71CNYMoabUTUSA38.75496-109.75484
72CODCodyWYUSA44.52019-109.0238
73COSColorado SpringsCOUSA38.80581-104.70025
74COUColumbiaMOUSA38.81809-92.21963
75CPRCasperWYUSA42.90836-106.46447
76CRPCorpus ChristiTXUSA27.77036-97.50122
77CRWCharlestonWVUSA38.37315-81.59319
78CSGColumbusGAUSA32.51633-84.93886
79CVGCovingtonKYUSA39.04614-84.66217
80CWAMosineeWIUSA44.77762-89.66678
81DABDaytona BeachFLUSA29.17992-81.05806
82DALDallasTXUSA32.84711-96.85177
83DAYDaytonOHUSA39.90238-84.21938
84DBQDubuqueIAUSA42.40296-90.70917
85DCAArlingtonVAUSA38.85208-77.03772
86DENDenverCOUSA39.85841-104.667
87DFWDallas-Fort WorthTXUSA32.89595-97.0372
88DHNDothanALUSA31.32134-85.44963
89DIKDickinsonNDUSA46.79739-102.80195
90DLGDillinghamAKUSA59.04541-158.50334
91DLHDuluthMNUSA46.84209-92.19365
92DRODurangoCOUSA37.15152-107.75377
93DSMDes MoinesIAUSA41.53493-93.66068
94DTWDetroitMIUSA42.21206-83.34884
95DVLDevils LakeNDUSA48.11425-98.90878
96EAUEau ClaireWIUSA44.86526-91.48507
97ECPPanama CityFLUSA[null][null]
98EGEEagleCOUSA39.64257-106.9177
99EKOElkoNVUSA40.82493-115.7917
100ELMElmiraNYUSA42.15991-76.89144
Columns: 7

Flights Data Vertica

We'll now read a locally stored CSV file with the flights data and materialize it in Vertica.

In [7]:
# Reading a csv file and naming the table flights_vertica
flight_vertica = vp.read_csv('flights.csv',
                             table_name = "flight_vertica")
flight_vertica
Out[7]:
123
YEAR
Int
123
MONTH
Int
123
DAY
Int
123
DAY_OF_WEEK
Int
Abc
AIRLINE
Varchar(20)
123
FLIGHT_NUMBER
Int
Abc
TAIL_NUMBER
Varchar(20)
Abc
ORIGIN_AIRPORT
Varchar(20)
Abc
DESTINATION_AIRPORT
Varchar(20)
123
SCHEDULED_DEPARTURE
Int
123
DEPARTURE_TIME
Int
123
DEPARTURE_DELAY
Int
123
TAXI_OUT
Int
123
WHEELS_OFF
Int
123
SCHEDULED_TIME
Int
123
ELAPSED_TIME
Int
123
AIR_TIME
Int
123
DISTANCE
Int
123
WHEELS_ON
Int
123
TAXI_IN
Int
123
SCHEDULED_ARRIVAL
Int
123
ARRIVAL_TIME
Int
123
ARRIVAL_DELAY
Int
123
DIVERTED
Int
123
CANCELLED
Int
Abc
CANCELLATION_REASON
Varchar(20)
123
AIR_SYSTEM_DELAY
Int
123
SECURITY_DELAY
Int
123
AIRLINE_DELAY
Int
123
LATE_AIRCRAFT_DELAY
Int
123
WEATHER_DELAY
Int
12015114AA1N787AAJFKLAX900855-51791239040237824751230712301237700[null][null][null][null][null][null]
22015114AA2N795AALAXJFK900856-41691233529527124751643817351651-4400[null][null][null][null][null][null]
32015114AA3N798AAJFKLAX12301226-419124538038235824751543515501548-200[null][null][null][null][null][null]
42015114AA4N799AALAXJFK12201214-6231237330319284247520211220502033-1700[null][null][null][null][null][null]
52015114AA5N376AADFWHNL130517542892118155155264993784223461740224030000[null]110197920
62015114AA6N398AAOGGDFW1805[null][null][null][null]425[null][null]3711[null][null]510[null][null]01A[null][null][null][null][null]
72015114AA7N398AADFWOGG121515131782415375005174903711194731635195019500[null]17017800
82015114AA8N368AAHNLDFW1745193310815194844544642037846481151065910900[null]1001080
92015114AA9N792AAJFKLAX700649-112271138039736824751019710201026600[null][null][null][null][null][null]
102015114AA10N796AALAXJFK21502150014220430929427524755395559544-1500[null][null][null][null][null][null]
112015114AA12N792AALAXJFK11151114-1191133335321287247519201519501935-1500[null][null][null][null][null][null]
122015114AA14N5ERAAOGGLAX23002254-6122306305289267248653310605543-2200[null][null][null][null][null][null]
132015114AA15N783AAJFKSFO800755-557852400453388258612208114012284800[null]480000
142015114AA16N783AASFOJFK12451316311813343303333052586213910211521493400[null]300310
152015114AA17N019AAATLMIA700656-415711112106825948339852842-1000[null][null][null][null][null][null]
162015114AA19N786AAJFKLAX11001055-517111238037835424751406714201413-700[null][null][null][null][null][null]
172015114AA20N789AASFOJFK15001503319152232532830125862323823252331600[null][null][null][null][null][null]
182015114AA21N795AAJFKLAX1845185162919203854073682475222810221022382800[null]220600
192015114AA22N786AALAXJFK15151512-3231535320317277247523121723352329-600[null][null][null][null][null][null]
202015114AA23N371AADFWSFO755841463591623023319014641026894510344900[null]304600
212015114AA23N371AASFODFW10501123332811512102171781464164911162017004000[null]700330
222015114AA24N784AASFOJFK720714-62073434033230725861541516001546-1400[null][null][null][null][null][null]
232015114AA25N3AVAABOSLAX900857-31591239540538126111233912351242700[null][null][null][null][null][null]
242015114AA27N5DUAADFWLAS1850192939161945175165141105520068194520142900[null]002900
252015114AA28N358AALAXMIA15001456-4191515290305284234222592225023011100[null][null][null][null][null][null]
262015114AA29N455AAONTDFW122513569125142117521714911881850431720193313300[null]4209100
272015114AA29N568AADFWONT1035[null][null][null][null]190[null][null]1188[null][null]1145[null][null]01B[null][null][null][null][null]
282015114AA30N795AALAXJFK23302326-423234932029927024757196750725-2500[null][null][null][null][null][null]
292015114AA31N5ESAALAXHNL8058282312840365362346255612264121012302000[null]002000
302015114AA32N794AALAXJFK141514249141438325315288247522261322402239-100[null][null][null][null][null][null]
312015114AA35N3ALAADFWHDN11101109-1111120145178111769121156123513073200[null]320000
322015114AA35N3ALAAHDNDFW1320140040111411135130109769170010163517103500[null]007280
332015114AA36N3EKAASANDFW935928-713941170172140117114011914251420-500[null][null][null][null][null][null]
342015114AA37N483AADFWSAN21002103318212118518716611712207322052210500[null][null][null][null][null][null]
352015114AA40N3BYAADCAORD9559550910041301261116121055611051101-400[null][null][null][null][null][null]
362015114AA41N3KEAAORDSEA20552054-11621102702932361721230641232523472200[null]220000
372015114AA42N3GPAASEAORD850849-11690523522420117211426714451433-1200[null][null][null][null][null][null]
382015114AA43N3BNAADFWDTW1030[null][null][null][null]150[null][null]986[null][null]1400[null][null]01B[null][null][null][null][null]
392015114AA43N3KCAADTWDFW144514450191504180199163986164717164517041900[null]190000
402015114AA44N3AJAALASJFK810803-71782029527224822481528716051535-3000[null][null][null][null][null][null]
412015114AA45N3ELAAJFKLAS17291727-221174835534731822482006820242014-1000[null][null][null][null][null][null]
422015114AA46N3CSAASJCORD725725013738255253226182913241413401338-200[null][null][null][null][null][null]
432015114AA47N3KSAAORDSJC1915203580182053280261238182922515215522566100[null]000610
442015114AA48N3JXAASANDFW835830-513843175164141117113041013301314-1600[null][null][null][null][null][null]
452015114AA49N5ELAADFWSAN1935200631152021185178160117121013204021042400[null]002400
462015114AA50N570AASLCDFW81582493690016517913498912149120012232300[null]140900
472015114AA51N471AADFWSLC17252035190242059170161130989220971915221618100[null]00221590
482015114AA52N3LMAALAXDCA12251222-318124029027925323111953820152001-1400[null][null][null][null][null][null]
492015114AA53N3LHAADCALAX840838-21285036035033123111121711401128-1200[null][null][null][null][null][null]
502015114AA54N3CWAALASORD910906-41692221519317015141412714451419-2600[null][null][null][null][null][null]
512015114AA55N3JJAAORDLAS1820192464131937230225205151421027201021095900[null]005900
522015114AA58N5DFAAKOALAX1400140002214223103202762504205822211021201000[null][null][null][null][null][null]
532015114AA59N5DFAALAXKOA840837-31785435035233225041226312301229-100[null][null][null][null][null][null]
542015114AA60N372AADFWMIA175419551211520101601511331121232332134232611200[null]0011200
552015114AA61N850AAMIADFW715719413732199192167112191912934931-300[null][null][null][null][null][null]
562015114AA63N3ECAAMIAPHX19501955523201831730227119722249823072257-1000[null][null][null][null][null][null]
572015114AA64N3HXAADFWJFK102510411613105420018716913911443514451448300[null][null][null][null][null][null]
582015114AA65N3HLAAJFKDFW16151625101916442552942271391193148193020194900[null]3901000
592015114AA66N631AASJUJFK11511142-922120424524722115981445414561449-700[null][null][null][null][null][null]
602015114AA67N631AAJFKSJU160516292423165223521118215982054621002100000[null][null][null][null][null][null]
612015114AA68N5EGAASFOMIA70070331471732431729525851512815241520-400[null][null][null][null][null][null]
622015114AA69N3HTAAMIASFO18351836112184838635934225852130522012135-2600[null][null][null][null][null][null]
632015114AA70N5BTAASANDFW705659-622721180171137117111381212051150-1500[null][null][null][null][null][null]
642015114AA71N3GHAADFWSAN18051803-214181718017616011711857219051859-600[null][null][null][null][null][null]
652015114AA72N5EKAADFWMCO6006066186241451421209859244925928300[null][null][null][null][null][null]
662015114AA72N5EKAAMCODFW10201015-516103117517114398511541212151206-900[null][null][null][null][null][null]
672015114AA73N3FBAAPHLCLT1005957-8261023120108764491139612051145-2000[null][null][null][null][null][null]
682015114AA74N488AACLEDFW15551552-311160319018116110211744918051753-1200[null][null][null][null][null][null]
692015114AA74N505AADFWCLE1145[null][null][null][null]150[null][null]1021[null][null]1515[null][null]01B[null][null][null][null][null]
702015114AA75N3HPAAIADLAX18301822-817183936035833522882114621302120-1000[null][null][null][null][null][null]
712015114AA76N3HPAALAXIAD950946-418100428526524322881707417351711-2400[null][null][null][null][null][null]
722015114AA76N3HPAASFOLAX730723-71573885974933782733855900500[null][null][null][null][null][null]
732015114AA79N520AADFWSMF2140221939302249225224188143123576232533800[null]000380
742015114AA80N4XTAATUSDFW1655174146101751130130105813203615200520514600[null]000460
752015114AA81N4XCAADFWTUS22452308231323211401401238132445282300[null]000230
762015114AA83N4XBAAMCODFW735733-21674918017414698591512935927-800[null][null][null][null][null][null]
772015114AA84N3AXAABOSJFK940930-10159457569461871031810551039-1600[null][null][null][null][null][null]
782015114AA84N3AXAAJFKBOS7307344177517065441878354840839-100[null][null][null][null][null][null]
792015114AA85N785AAJFKSFO15301524-620154440038636125861845519101850-2000[null][null][null][null][null][null]
802015114AA86N3GTAAPDXORD705701-41571623523020817391244713001251-900[null][null][null][null][null][null]
812015114AA87N490AAORDRNO18451840-511185126522821316712024421102028-4200[null][null][null][null][null][null]
822015114AA89N3KVAAIAHMIA520618581963714113711196492878419355400[null]005400
832015114AA92N3KHAASANORD90090001591524021018917231424615001430-3000[null][null][null][null][null][null]
842015114AA93N3HHAAORDSAN1720180545101815255222210172319452193519471200[null][null][null][null][null][null]
852015114AA94N3ANAASANJFK755810151382332028126224461545616151551-2400[null][null][null][null][null][null]
862015114AA95N3ANAAJFKSAN1720174929181807380386363244621105204021153500[null]602900
872015114AA96N553AADFWSTL82083111218529594705501002395510051000[null][null][null][null][null][null]
882015114AA96N553AASTLDFW103510511615110611513198550124418123013023200[null]1606100
892015114AA97N3ENAADCADFW845842-314856215210185119211011111201112-800[null][null][null][null][null][null]
902015114AA99N3KMAAORDPDX15501553311160427525323917391803318251806-1900[null][null][null][null][null][null]
912015114AA102N376AAHNLDFW1920235627617134454454173784111011645112127600[null]0002760
922015114AA103N4XSAADFWMSY141014332313144680806244715485153015532300[null]002300
932015114AA103N4XSAAMSYDFW16101624148163210091744471746917501755500[null][null][null][null][null][null]
942015114AA110N3LRAASNAORD805801-47808230211194172613221013551332-2300[null][null][null][null][null][null]
952015114AA111N3LYAAORDSNA17201719-111173026023722217261912419401916-2400[null][null][null][null][null][null]
962015114AA112N857AADENMIA101510172191036224229199170915551115591606700[null][null][null][null][null][null]
972015114AA113N3GRAAMIADEN211521150212136269269235170923311323442344000[null][null][null][null][null][null]
982015114AA115N3CTAALAXMIA105103-21411728627625523428327851839-1200[null][null][null][null][null][null]
992015114AA116N383AAOGGDFW1955201621102026430433418371172457057292400[null]302100
1002015114AA117N793AAJFKLAX14451438-728150639038935524751801618151807-800[null][null][null][null][null][null]
Rows: 1-100 | Columns: 31
In [8]:
%%sql
/* Fetch all the data from the table flight_vertica. */
SELECT * FROM flight_vertica;
Execution: 0.014s
Out[8]:
123
YEAR
Integer
123
MONTH
Integer
123
DAY
Integer
123
DAY_OF_WEEK
Integer
Abc
AIRLINE
Varchar(20)
123
FLIGHT_NUMBER
Integer
Abc
TAIL_NUMBER
Varchar(20)
Abc
ORIGIN_AIRPORT
Varchar(20)
Abc
DESTINATION_AIRPORT
Varchar(20)
123
SCHEDULED_DEPARTURE
Integer
123
DEPARTURE_TIME
Integer
123
DEPARTURE_DELAY
Integer
123
TAXI_OUT
Integer
123
WHEELS_OFF
Integer
123
SCHEDULED_TIME
Integer
123
ELAPSED_TIME
Integer
123
AIR_TIME
Integer
123
DISTANCE
Integer
123
WHEELS_ON
Integer
123
TAXI_IN
Integer
123
SCHEDULED_ARRIVAL
Integer
123
ARRIVAL_TIME
Integer
123
ARRIVAL_DELAY
Integer
123
DIVERTED
Integer
123
CANCELLED
Integer
Abc
CANCELLATION_REASON
Varchar(20)
123
AIR_SYSTEM_DELAY
Integer
123
SECURITY_DELAY
Integer
123
AIRLINE_DELAY
Integer
123
LATE_AIRCRAFT_DELAY
Integer
123
WEATHER_DELAY
Integer
12015114AA1N787AAJFKLAX900855-51791239040237824751230712301237700[null][null][null][null][null][null]
22015114AA2N795AALAXJFK900856-41691233529527124751643817351651-4400[null][null][null][null][null][null]
32015114AA3N798AAJFKLAX12301226-419124538038235824751543515501548-200[null][null][null][null][null][null]
42015114AA4N799AALAXJFK12201214-6231237330319284247520211220502033-1700[null][null][null][null][null][null]
52015114AA5N376AADFWHNL130517542892118155155264993784223461740224030000[null]110197920
62015114AA6N398AAOGGDFW1805[null][null][null][null]425[null][null]3711[null][null]510[null][null]01A[null][null][null][null][null]
72015114AA7N398AADFWOGG121515131782415375005174903711194731635195019500[null]17017800
82015114AA8N368AAHNLDFW1745193310815194844544642037846481151065910900[null]1001080
92015114AA9N792AAJFKLAX700649-112271138039736824751019710201026600[null][null][null][null][null][null]
102015114AA10N796AALAXJFK21502150014220430929427524755395559544-1500[null][null][null][null][null][null]
112015114AA12N792AALAXJFK11151114-1191133335321287247519201519501935-1500[null][null][null][null][null][null]
122015114AA14N5ERAAOGGLAX23002254-6122306305289267248653310605543-2200[null][null][null][null][null][null]
132015114AA15N783AAJFKSFO800755-557852400453388258612208114012284800[null]480000
142015114AA16N783AASFOJFK12451316311813343303333052586213910211521493400[null]300310
152015114AA17N019AAATLMIA700656-415711112106825948339852842-1000[null][null][null][null][null][null]
162015114AA19N786AAJFKLAX11001055-517111238037835424751406714201413-700[null][null][null][null][null][null]
172015114AA20N789AASFOJFK15001503319152232532830125862323823252331600[null][null][null][null][null][null]
182015114AA21N795AAJFKLAX1845185162919203854073682475222810221022382800[null]220600
192015114AA22N786AALAXJFK15151512-3231535320317277247523121723352329-600[null][null][null][null][null][null]
202015114AA23N371AADFWSFO755841463591623023319014641026894510344900[null]304600
212015114AA23N371AASFODFW10501123332811512102171781464164911162017004000[null]700330
222015114AA24N784AASFOJFK720714-62073434033230725861541516001546-1400[null][null][null][null][null][null]
232015114AA25N3AVAABOSLAX900857-31591239540538126111233912351242700[null][null][null][null][null][null]
242015114AA27N5DUAADFWLAS1850192939161945175165141105520068194520142900[null]002900
252015114AA28N358AALAXMIA15001456-4191515290305284234222592225023011100[null][null][null][null][null][null]
262015114AA29N455AAONTDFW122513569125142117521714911881850431720193313300[null]4209100
272015114AA29N568AADFWONT1035[null][null][null][null]190[null][null]1188[null][null]1145[null][null]01B[null][null][null][null][null]
282015114AA30N795AALAXJFK23302326-423234932029927024757196750725-2500[null][null][null][null][null][null]
292015114AA31N5ESAALAXHNL8058282312840365362346255612264121012302000[null]002000
302015114AA32N794AALAXJFK141514249141438325315288247522261322402239-100[null][null][null][null][null][null]
312015114AA35N3ALAADFWHDN11101109-1111120145178111769121156123513073200[null]320000
322015114AA35N3ALAAHDNDFW1320140040111411135130109769170010163517103500[null]007280
332015114AA36N3EKAASANDFW935928-713941170172140117114011914251420-500[null][null][null][null][null][null]
342015114AA37N483AADFWSAN21002103318212118518716611712207322052210500[null][null][null][null][null][null]
352015114AA40N3BYAADCAORD9559550910041301261116121055611051101-400[null][null][null][null][null][null]
362015114AA41N3KEAAORDSEA20552054-11621102702932361721230641232523472200[null]220000
372015114AA42N3GPAASEAORD850849-11690523522420117211426714451433-1200[null][null][null][null][null][null]
382015114AA43N3BNAADFWDTW1030[null][null][null][null]150[null][null]986[null][null]1400[null][null]01B[null][null][null][null][null]
392015114AA43N3KCAADTWDFW144514450191504180199163986164717164517041900[null]190000
402015114AA44N3AJAALASJFK810803-71782029527224822481528716051535-3000[null][null][null][null][null][null]
412015114AA45N3ELAAJFKLAS17291727-221174835534731822482006820242014-1000[null][null][null][null][null][null]
422015114AA46N3CSAASJCORD725725013738255253226182913241413401338-200[null][null][null][null][null][null]
432015114AA47N3KSAAORDSJC1915203580182053280261238182922515215522566100[null]000610
442015114AA48N3JXAASANDFW835830-513843175164141117113041013301314-1600[null][null][null][null][null][null]
452015114AA49N5ELAADFWSAN1935200631152021185178160117121013204021042400[null]002400
462015114AA50N570AASLCDFW81582493690016517913498912149120012232300[null]140900
472015114AA51N471AADFWSLC17252035190242059170161130989220971915221618100[null]00221590
482015114AA52N3LMAALAXDCA12251222-318124029027925323111953820152001-1400[null][null][null][null][null][null]
492015114AA53N3LHAADCALAX840838-21285036035033123111121711401128-1200[null][null][null][null][null][null]
502015114AA54N3CWAALASORD910906-41692221519317015141412714451419-2600[null][null][null][null][null][null]
512015114AA55N3JJAAORDLAS1820192464131937230225205151421027201021095900[null]005900
522015114AA58N5DFAAKOALAX1400140002214223103202762504205822211021201000[null][null][null][null][null][null]
532015114AA59N5DFAALAXKOA840837-31785435035233225041226312301229-100[null][null][null][null][null][null]
542015114AA60N372AADFWMIA175419551211520101601511331121232332134232611200[null]0011200
552015114AA61N850AAMIADFW715719413732199192167112191912934931-300[null][null][null][null][null][null]
562015114AA63N3ECAAMIAPHX19501955523201831730227119722249823072257-1000[null][null][null][null][null][null]
572015114AA64N3HXAADFWJFK102510411613105420018716913911443514451448300[null][null][null][null][null][null]
582015114AA65N3HLAAJFKDFW16151625101916442552942271391193148193020194900[null]3901000
592015114AA66N631AASJUJFK11511142-922120424524722115981445414561449-700[null][null][null][null][null][null]
602015114AA67N631AAJFKSJU160516292423165223521118215982054621002100000[null][null][null][null][null][null]
612015114AA68N5EGAASFOMIA70070331471732431729525851512815241520-400[null][null][null][null][null][null]
622015114AA69N3HTAAMIASFO18351836112184838635934225852130522012135-2600[null][null][null][null][null][null]
632015114AA70N5BTAASANDFW705659-622721180171137117111381212051150-1500[null][null][null][null][null][null]
642015114AA71N3GHAADFWSAN18051803-214181718017616011711857219051859-600[null][null][null][null][null][null]
652015114AA72N5EKAADFWMCO6006066186241451421209859244925928300[null][null][null][null][null][null]
662015114AA72N5EKAAMCODFW10201015-516103117517114398511541212151206-900[null][null][null][null][null][null]
672015114AA73N3FBAAPHLCLT1005957-8261023120108764491139612051145-2000[null][null][null][null][null][null]
682015114AA74N488AACLEDFW15551552-311160319018116110211744918051753-1200[null][null][null][null][null][null]
692015114AA74N505AADFWCLE1145[null][null][null][null]150[null][null]1021[null][null]1515[null][null]01B[null][null][null][null][null]
702015114AA75N3HPAAIADLAX18301822-817183936035833522882114621302120-1000[null][null][null][null][null][null]
712015114AA76N3HPAALAXIAD950946-418100428526524322881707417351711-2400[null][null][null][null][null][null]
722015114AA76N3HPAASFOLAX730723-71573885974933782733855900500[null][null][null][null][null][null]
732015114AA79N520AADFWSMF2140221939302249225224188143123576232533800[null]000380
742015114AA80N4XTAATUSDFW1655174146101751130130105813203615200520514600[null]000460
752015114AA81N4XCAADFWTUS22452308231323211401401238132445282300[null]000230
762015114AA83N4XBAAMCODFW735733-21674918017414698591512935927-800[null][null][null][null][null][null]
772015114AA84N3AXAABOSJFK940930-10159457569461871031810551039-1600[null][null][null][null][null][null]
782015114AA84N3AXAAJFKBOS7307344177517065441878354840839-100[null][null][null][null][null][null]
792015114AA85N785AAJFKSFO15301524-620154440038636125861845519101850-2000[null][null][null][null][null][null]
802015114AA86N3GTAAPDXORD705701-41571623523020817391244713001251-900[null][null][null][null][null][null]
812015114AA87N490AAORDRNO18451840-511185126522821316712024421102028-4200[null][null][null][null][null][null]
822015114AA89N3KVAAIAHMIA520618581963714113711196492878419355400[null]005400
832015114AA92N3KHAASANORD90090001591524021018917231424615001430-3000[null][null][null][null][null][null]
842015114AA93N3HHAAORDSAN1720180545101815255222210172319452193519471200[null][null][null][null][null][null]
852015114AA94N3ANAASANJFK755810151382332028126224461545616151551-2400[null][null][null][null][null][null]
862015114AA95N3ANAAJFKSAN1720174929181807380386363244621105204021153500[null]602900
872015114AA96N553AADFWSTL82083111218529594705501002395510051000[null][null][null][null][null][null]
882015114AA96N553AASTLDFW103510511615110611513198550124418123013023200[null]1606100
892015114AA97N3ENAADCADFW845842-314856215210185119211011111201112-800[null][null][null][null][null][null]
902015114AA99N3KMAAORDPDX15501553311160427525323917391803318251806-1900[null][null][null][null][null][null]
912015114AA102N376AAHNLDFW1920235627617134454454173784111011645112127600[null]0002760
922015114AA103N4XSAADFWMSY141014332313144680806244715485153015532300[null]002300
932015114AA103N4XSAAMSYDFW16101624148163210091744471746917501755500[null][null][null][null][null][null]
942015114AA110N3LRAASNAORD805801-47808230211194172613221013551332-2300[null][null][null][null][null][null]
952015114AA111N3LYAAORDSNA17201719-111173026023722217261912419401916-2400[null][null][null][null][null][null]
962015114AA112N857AADENMIA101510172191036224229199170915551115591606700[null][null][null][null][null][null]
972015114AA113N3GRAAMIADEN211521150212136269269235170923311323442344000[null][null][null][null][null][null]
982015114AA115N3CTAALAXMIA105103-21411728627625523428327851839-1200[null][null][null][null][null][null]
992015114AA116N383AAOGGDFW1955201621102026430433418371172457057292400[null]302100
1002015114AA117N793AAJFKLAX14451438-728150639038935524751801618151807-800[null][null][null][null][null][null]
Columns: 31

Joins and Queries Across Multiple Databases

Now we can run queries that execute through multiple sources.

Let's try to find the TAIL_NUMBER and Departing City for all the flights by joining the two tables:

  • flight_vertica (stored in Vertica)
  • airports (stored in MySQL)
In [9]:
%%sql
/* Fetch TAIL_NUMBER and CITY after Joining the flight_vertica table with airports table in MySQL database. */
SELECT flight_vertica.TAIL_NUMBER, airports.CITY AS Departing_City
FROM flight_vertica
INNER JOIN &&& airports &&&
ON flight_vertica.ORIGIN_AIRPORT = airports.IATA_CODE;
Execution: 0.11s
Out[9]:
Abc
TAIL_NUMBER
Varchar(20)
Abc
Departing_City
Varchar(60)
1N787AANew York
2N795AALos Angeles
3N798AANew York
4N799AALos Angeles
5N376AADallas-Fort Worth
6N398AAKahului
7N398AADallas-Fort Worth
8N368AAHonolulu
9N792AANew York
10N796AALos Angeles
11N792AALos Angeles
12N5ERAAKahului
13N783AANew York
14N783AASan Francisco
15N019AAAtlanta
16N786AANew York
17N789AASan Francisco
18N795AANew York
19N786AALos Angeles
20N371AADallas-Fort Worth
21N371AASan Francisco
22N784AASan Francisco
23N3AVAABoston
24N5DUAADallas-Fort Worth
25N358AALos Angeles
26N455AAOntario
27N568AADallas-Fort Worth
28N795AALos Angeles
29N5ESAALos Angeles
30N794AALos Angeles
31N3ALAADallas-Fort Worth
32N3ALAAHayden
33N3EKAASan Diego
34N483AADallas-Fort Worth
35N3BYAAArlington
36N3KEAAChicago
37N3GPAASeattle
38N3BNAADallas-Fort Worth
39N3KCAADetroit
40N3AJAALas Vegas
41N3ELAANew York
42N3CSAASan Jose
43N3KSAAChicago
44N3JXAASan Diego
45N5ELAADallas-Fort Worth
46N570AASalt Lake City
47N471AADallas-Fort Worth
48N3LMAALos Angeles
49N3LHAAArlington
50N3CWAALas Vegas
51N3JJAAChicago
52N5DFAAKailua/Kona
53N5DFAALos Angeles
54N372AADallas-Fort Worth
55N850AAMiami
56N3ECAAMiami
57N3HXAADallas-Fort Worth
58N3HLAANew York
59N631AASan Juan
60N631AANew York
61N5EGAASan Francisco
62N3HTAAMiami
63N5BTAASan Diego
64N3GHAADallas-Fort Worth
65N5EKAADallas-Fort Worth
66N5EKAAOrlando
67N3FBAAPhiladelphia
68N488AACleveland
69N505AADallas-Fort Worth
70N3HPAAChantilly
71N3HPAALos Angeles
72N3HPAASan Francisco
73N520AADallas-Fort Worth
74N4XTAATucson
75N4XCAADallas-Fort Worth
76N4XBAAOrlando
77N3AXAABoston
78N3AXAANew York
79N785AANew York
80N3GTAAPortland
81N490AAChicago
82N3KVAAHouston
83N3KHAASan Diego
84N3HHAAChicago
85N3ANAASan Diego
86N3ANAANew York
87N553AADallas-Fort Worth
88N553AASt Louis
89N3ENAAArlington
90N3KMAAChicago
91N376AAHonolulu
92N4XSAADallas-Fort Worth
93N4XSAANew Orleans
94N3LRAASanta Ana
95N3LYAAChicago
96N857AADenver
97N3GRAAMiami
98N3CTAALos Angeles
99N383AAKahului
100N793AANew York
Columns: 2

Let's try another query to find the TAIL_NUMBER and AIRLINE of all the flights by joining the two tables:

  • flight_vertica (stored in Vertica)
  • airline (stored in PostgreSQL)
In [30]:
%%sql
/* Fetch TAIL_NUMBER and AIRLINE after Joining the flight_vertica table with airline table in PostgreSQL database. */
SELECT flight_vertica.TAIL_NUMBER, airline.AIRLINE
FROM flight_vertica
INNER JOIN $$$ airline $$$ 
ON flight_vertica.AIRLINE = airline.IATA_CODE;
Execution: 0.113s
Out[30]:
Abc
TAIL_NUMBER
Varchar(20)
Abc
AIRLINE
Varchar(1024)
1N787AAAmerican Airlines Inc.
2N787AAAmerican Airlines Inc.
3N795AAAmerican Airlines Inc.
4N795AAAmerican Airlines Inc.
5N798AAAmerican Airlines Inc.
6N798AAAmerican Airlines Inc.
7N799AAAmerican Airlines Inc.
8N799AAAmerican Airlines Inc.
9N376AAAmerican Airlines Inc.
10N376AAAmerican Airlines Inc.
11N398AAAmerican Airlines Inc.
12N398AAAmerican Airlines Inc.
13N398AAAmerican Airlines Inc.
14N398AAAmerican Airlines Inc.
15N368AAAmerican Airlines Inc.
16N368AAAmerican Airlines Inc.
17N792AAAmerican Airlines Inc.
18N792AAAmerican Airlines Inc.
19N796AAAmerican Airlines Inc.
20N796AAAmerican Airlines Inc.
21N792AAAmerican Airlines Inc.
22N792AAAmerican Airlines Inc.
23N5ERAAAmerican Airlines Inc.
24N5ERAAAmerican Airlines Inc.
25N783AAAmerican Airlines Inc.
26N783AAAmerican Airlines Inc.
27N783AAAmerican Airlines Inc.
28N783AAAmerican Airlines Inc.
29N019AAAmerican Airlines Inc.
30N019AAAmerican Airlines Inc.
31N786AAAmerican Airlines Inc.
32N786AAAmerican Airlines Inc.
33N789AAAmerican Airlines Inc.
34N789AAAmerican Airlines Inc.
35N795AAAmerican Airlines Inc.
36N795AAAmerican Airlines Inc.
37N786AAAmerican Airlines Inc.
38N786AAAmerican Airlines Inc.
39N371AAAmerican Airlines Inc.
40N371AAAmerican Airlines Inc.
41N371AAAmerican Airlines Inc.
42N371AAAmerican Airlines Inc.
43N784AAAmerican Airlines Inc.
44N784AAAmerican Airlines Inc.
45N3AVAAAmerican Airlines Inc.
46N3AVAAAmerican Airlines Inc.
47N5DUAAAmerican Airlines Inc.
48N5DUAAAmerican Airlines Inc.
49N358AAAmerican Airlines Inc.
50N358AAAmerican Airlines Inc.
51N455AAAmerican Airlines Inc.
52N455AAAmerican Airlines Inc.
53N568AAAmerican Airlines Inc.
54N568AAAmerican Airlines Inc.
55N795AAAmerican Airlines Inc.
56N795AAAmerican Airlines Inc.
57N5ESAAAmerican Airlines Inc.
58N5ESAAAmerican Airlines Inc.
59N794AAAmerican Airlines Inc.
60N794AAAmerican Airlines Inc.
61N3ALAAAmerican Airlines Inc.
62N3ALAAAmerican Airlines Inc.
63N3ALAAAmerican Airlines Inc.
64N3ALAAAmerican Airlines Inc.
65N3EKAAAmerican Airlines Inc.
66N3EKAAAmerican Airlines Inc.
67N483AAAmerican Airlines Inc.
68N483AAAmerican Airlines Inc.
69N3BYAAAmerican Airlines Inc.
70N3BYAAAmerican Airlines Inc.
71N3KEAAAmerican Airlines Inc.
72N3KEAAAmerican Airlines Inc.
73N3GPAAAmerican Airlines Inc.
74N3GPAAAmerican Airlines Inc.
75N3BNAAAmerican Airlines Inc.
76N3BNAAAmerican Airlines Inc.
77N3KCAAAmerican Airlines Inc.
78N3KCAAAmerican Airlines Inc.
79N3AJAAAmerican Airlines Inc.
80N3AJAAAmerican Airlines Inc.
81N3ELAAAmerican Airlines Inc.
82N3ELAAAmerican Airlines Inc.
83N3CSAAAmerican Airlines Inc.
84N3CSAAAmerican Airlines Inc.
85N3KSAAAmerican Airlines Inc.
86N3KSAAAmerican Airlines Inc.
87N3JXAAAmerican Airlines Inc.
88N3JXAAAmerican Airlines Inc.
89N5ELAAAmerican Airlines Inc.
90N5ELAAAmerican Airlines Inc.
91N570AAAmerican Airlines Inc.
92N570AAAmerican Airlines Inc.
93N471AAAmerican Airlines Inc.
94N471AAAmerican Airlines Inc.
95N3LMAAAmerican Airlines Inc.
96N3LMAAAmerican Airlines Inc.
97N3LHAAAmerican Airlines Inc.
98N3LHAAAmerican Airlines Inc.
99N3CWAAAmerican Airlines Inc.
100N3CWAAAmerican Airlines Inc.
Columns: 2

We can even try queries that require multiple joins.

In the following example, we try to get the TAIL_NUMBER, AIRLINE, and CITY details for all the flights by joining:

  • flight_local table (stored in Vertica)
  • airline table (stored in PostgreSQL)
  • airports table (stored in MySQL)
In [10]:
%%sql
/* Fetch FLIGHT_NUMBER, AIRLINE and STATE after Joining the flight_vertica table with two other tables from different databases. */
SELECT flight_vertica.FLIGHT_NUMBER, airline.AIRLINE, airports.STATE
FROM flight_vertica
INNER JOIN $$$ airline $$$ 
ON flight_vertica.AIRLINE = airline.IATA_CODE
INNER JOIN &&& airports &&&
ON flight_vertica.ORIGIN_AIRPORT = airports.IATA_CODE;
Execution: 0.095s
Out[10]:
123
FLIGHT_NUMBER
Integer
Abc
AIRLINE
Varchar(1024)
Abc
STATE
Varchar(2)
11American Airlines Inc.NY
21American Airlines Inc.NY
32American Airlines Inc.CA
42American Airlines Inc.CA
53American Airlines Inc.NY
63American Airlines Inc.NY
74American Airlines Inc.CA
84American Airlines Inc.CA
95American Airlines Inc.TX
105American Airlines Inc.TX
116American Airlines Inc.HI
126American Airlines Inc.HI
137American Airlines Inc.TX
147American Airlines Inc.TX
158American Airlines Inc.HI
168American Airlines Inc.HI
179American Airlines Inc.NY
189American Airlines Inc.NY
1910American Airlines Inc.CA
2010American Airlines Inc.CA
2112American Airlines Inc.CA
2212American Airlines Inc.CA
2314American Airlines Inc.HI
2414American Airlines Inc.HI
2515American Airlines Inc.NY
2615American Airlines Inc.NY
2716American Airlines Inc.CA
2816American Airlines Inc.CA
2917American Airlines Inc.GA
3017American Airlines Inc.GA
3119American Airlines Inc.NY
3219American Airlines Inc.NY
3320American Airlines Inc.CA
3420American Airlines Inc.CA
3521American Airlines Inc.NY
3621American Airlines Inc.NY
3722American Airlines Inc.CA
3822American Airlines Inc.CA
3923American Airlines Inc.TX
4023American Airlines Inc.TX
4123American Airlines Inc.CA
4223American Airlines Inc.CA
4324American Airlines Inc.CA
4424American Airlines Inc.CA
4525American Airlines Inc.MA
4625American Airlines Inc.MA
4727American Airlines Inc.TX
4827American Airlines Inc.TX
4928American Airlines Inc.CA
5028American Airlines Inc.CA
5129American Airlines Inc.CA
5229American Airlines Inc.CA
5329American Airlines Inc.TX
5429American Airlines Inc.TX
5530American Airlines Inc.CA
5630American Airlines Inc.CA
5731American Airlines Inc.CA
5831American Airlines Inc.CA
5932American Airlines Inc.CA
6032American Airlines Inc.CA
6135American Airlines Inc.TX
6235American Airlines Inc.TX
6335American Airlines Inc.CO
6435American Airlines Inc.CO
6536American Airlines Inc.CA
6636American Airlines Inc.CA
6737American Airlines Inc.TX
6837American Airlines Inc.TX
6940American Airlines Inc.VA
7040American Airlines Inc.VA
7141American Airlines Inc.IL
7241American Airlines Inc.IL
7342American Airlines Inc.WA
7442American Airlines Inc.WA
7543American Airlines Inc.TX
7643American Airlines Inc.TX
7743American Airlines Inc.MI
7843American Airlines Inc.MI
7944American Airlines Inc.NV
8044American Airlines Inc.NV
8145American Airlines Inc.NY
8245American Airlines Inc.NY
8346American Airlines Inc.CA
8446American Airlines Inc.CA
8547American Airlines Inc.IL
8647American Airlines Inc.IL
8748American Airlines Inc.CA
8848American Airlines Inc.CA
8949American Airlines Inc.TX
9049American Airlines Inc.TX
9150American Airlines Inc.UT
9250American Airlines Inc.UT
9351American Airlines Inc.TX
9451American Airlines Inc.TX
9552American Airlines Inc.CA
9652American Airlines Inc.CA
9753American Airlines Inc.VA
9853American Airlines Inc.VA
9954American Airlines Inc.NV
10054American Airlines Inc.NV
Columns: 3

Pandas.DataFrame

The joins also work with pandas.Dataframe. We can perform the same query that required multiple joins, but now with a local Pandas dataframe.

We will first read the local CSV file.

In [35]:
# Create a Pandas Data Frame after importing the csv file "passengers.csv"
import pandas as pd
passengers_pandas = pd.read_csv('passengers.csv')
passengers_pandas
Out[35]:
FLIGHT_NUMBER PASSENGER_COUNT
0 98 293
1 2336 222
2 840 188
3 258 143
4 135 267
... ... ...
5401 4106 266
5402 4113 157
5403 979 226
5404 5430 251
5405 4157 228

5406 rows × 2 columns

We can now perform the same query involving the three tables:

  • flight_vertica table (stored in Vertica)
  • passengers_pandas table (pandas.DataFrame stored in-memory)
  • airline table (stored in PostgreSQL)
  • airports table (stored in MySQL)
In [33]:
%%sql
SELECT 
    flight_vertica.TAIL_NUMBER, 
    airline.AIRLINE, 
    airports.CITY, 
    :passengers_pandas.PASSENGER_COUNT
FROM flight_vertica
INNER JOIN $$$ airline $$$ 
ON flight_vertica.AIRLINE = airline.IATA_CODE
INNER JOIN &&& airports &&&
ON flight_vertica.ORIGIN_AIRPORT = airports.IATA_CODE
INNER JOIN :passengers_pandas
ON flight_vertica.FLIGHT_NUMBER = :passengers_pandas.FLIGHT_NUMBER;
Execution: 0.097s
Out[33]:
Abc
TAIL_NUMBER
Varchar(20)
Abc
AIRLINE
Varchar(1024)
Abc
CITY
Varchar(60)
123
PASSENGER_COUNT
Integer
1N787AAAmerican Airlines Inc.New York252
2N787AAAmerican Airlines Inc.New York252
3N795AAAmerican Airlines Inc.Los Angeles193
4N795AAAmerican Airlines Inc.Los Angeles193
5N798AAAmerican Airlines Inc.New York201
6N798AAAmerican Airlines Inc.New York201
7N799AAAmerican Airlines Inc.Los Angeles210
8N799AAAmerican Airlines Inc.Los Angeles210
9N376AAAmerican Airlines Inc.Dallas-Fort Worth190
10N376AAAmerican Airlines Inc.Dallas-Fort Worth190
11N398AAAmerican Airlines Inc.Kahului181
12N398AAAmerican Airlines Inc.Kahului181
13N398AAAmerican Airlines Inc.Dallas-Fort Worth195
14N398AAAmerican Airlines Inc.Dallas-Fort Worth195
15N368AAAmerican Airlines Inc.Honolulu117
16N368AAAmerican Airlines Inc.Honolulu117
17N792AAAmerican Airlines Inc.New York221
18N792AAAmerican Airlines Inc.New York221
19N796AAAmerican Airlines Inc.Los Angeles245
20N796AAAmerican Airlines Inc.Los Angeles245
21N792AAAmerican Airlines Inc.Los Angeles280
22N792AAAmerican Airlines Inc.Los Angeles280
23N5ERAAAmerican Airlines Inc.Kahului259
24N5ERAAAmerican Airlines Inc.Kahului259
25N783AAAmerican Airlines Inc.New York184
26N783AAAmerican Airlines Inc.New York184
27N783AAAmerican Airlines Inc.San Francisco173
28N783AAAmerican Airlines Inc.San Francisco173
29N019AAAmerican Airlines Inc.Atlanta244
30N019AAAmerican Airlines Inc.Atlanta244
31N786AAAmerican Airlines Inc.New York235
32N786AAAmerican Airlines Inc.New York235
33N789AAAmerican Airlines Inc.San Francisco156
34N789AAAmerican Airlines Inc.San Francisco156
35N795AAAmerican Airlines Inc.New York204
36N795AAAmerican Airlines Inc.New York204
37N786AAAmerican Airlines Inc.Los Angeles210
38N786AAAmerican Airlines Inc.Los Angeles210
39N371AAAmerican Airlines Inc.Dallas-Fort Worth131
40N371AAAmerican Airlines Inc.Dallas-Fort Worth131
41N371AAAmerican Airlines Inc.San Francisco131
42N371AAAmerican Airlines Inc.San Francisco131
43N784AAAmerican Airlines Inc.San Francisco152
44N784AAAmerican Airlines Inc.San Francisco152
45N3AVAAAmerican Airlines Inc.Boston155
46N3AVAAAmerican Airlines Inc.Boston155
47N5DUAAAmerican Airlines Inc.Dallas-Fort Worth210
48N5DUAAAmerican Airlines Inc.Dallas-Fort Worth210
49N358AAAmerican Airlines Inc.Los Angeles224
50N358AAAmerican Airlines Inc.Los Angeles224
51N455AAAmerican Airlines Inc.Ontario141
52N455AAAmerican Airlines Inc.Ontario141
53N568AAAmerican Airlines Inc.Dallas-Fort Worth141
54N568AAAmerican Airlines Inc.Dallas-Fort Worth141
55N795AAAmerican Airlines Inc.Los Angeles238
56N795AAAmerican Airlines Inc.Los Angeles238
57N5ESAAAmerican Airlines Inc.Los Angeles148
58N5ESAAAmerican Airlines Inc.Los Angeles148
59N794AAAmerican Airlines Inc.Los Angeles200
60N794AAAmerican Airlines Inc.Los Angeles200
61N3ALAAAmerican Airlines Inc.Dallas-Fort Worth138
62N3ALAAAmerican Airlines Inc.Dallas-Fort Worth138
63N3ALAAAmerican Airlines Inc.Hayden138
64N3ALAAAmerican Airlines Inc.Hayden138
65N3EKAAAmerican Airlines Inc.San Diego258
66N3EKAAAmerican Airlines Inc.San Diego258
67N483AAAmerican Airlines Inc.Dallas-Fort Worth272
68N483AAAmerican Airlines Inc.Dallas-Fort Worth272
69N3BYAAAmerican Airlines Inc.Arlington189
70N3BYAAAmerican Airlines Inc.Arlington189
71N3KEAAAmerican Airlines Inc.Chicago161
72N3KEAAAmerican Airlines Inc.Chicago161
73N3GPAAAmerican Airlines Inc.Seattle186
74N3GPAAAmerican Airlines Inc.Seattle186
75N3BNAAAmerican Airlines Inc.Dallas-Fort Worth209
76N3BNAAAmerican Airlines Inc.Dallas-Fort Worth209
77N3KCAAAmerican Airlines Inc.Detroit209
78N3KCAAAmerican Airlines Inc.Detroit209
79N3AJAAAmerican Airlines Inc.Las Vegas118
80N3AJAAAmerican Airlines Inc.Las Vegas118
81N3ELAAAmerican Airlines Inc.New York208
82N3ELAAAmerican Airlines Inc.New York208
83N3CSAAAmerican Airlines Inc.San Jose266
84N3CSAAAmerican Airlines Inc.San Jose266
85N3KSAAAmerican Airlines Inc.Chicago278
86N3KSAAAmerican Airlines Inc.Chicago278
87N3JXAAAmerican Airlines Inc.San Diego213
88N3JXAAAmerican Airlines Inc.San Diego213
89N5ELAAAmerican Airlines Inc.Dallas-Fort Worth207
90N5ELAAAmerican Airlines Inc.Dallas-Fort Worth207
91N570AAAmerican Airlines Inc.Salt Lake City176
92N570AAAmerican Airlines Inc.Salt Lake City176
93N471AAAmerican Airlines Inc.Dallas-Fort Worth234
94N471AAAmerican Airlines Inc.Dallas-Fort Worth234
95N3LMAAAmerican Airlines Inc.Los Angeles149
96N3LMAAAmerican Airlines Inc.Los Angeles149
97N3LHAAAmerican Airlines Inc.Arlington277
98N3LHAAAmerican Airlines Inc.Arlington277
99N3CWAAAmerican Airlines Inc.Las Vegas193
100N3CWAAAmerican Airlines Inc.Las Vegas193
Columns: 4

Conclusion

With the combination of Verticapy and DBLINK, we can now work with multiple datasets stored in different databases. We can work simultaneously with external tables, Vertica tables, and Pandas DataFrame in a single query! There is no need to materialize the table before use because it's all taken care of in the background.

The cherry on the cake is the ease-of-use that is enabled by VerticaPy and its Python-like syntax.

Queries that required paragraph upon paragraph to execute can now be done efficiently with only a few intuitive lines of code.

This new functionality opens up many possibilities for data querying and manipulation in Vertica.