正在從 watsonx.data 查詢資料
開始之前
在範例中,使用了 2021 年 1 月和 2022 年黃色計程車的公開 紐約計程車行程記錄資料。 若要遵循此範例,請確保資料位於可存取的S3儲存桶中,watsonx.data該表已載入至Hive Metastore 伺服器 (HMS) 中的Apache Iceberg 表中。
1. 使用必要的 metastoreuri 來建立資料庫。
外部資料來源允許管理員授予對S3/Azure存取權限,而無需直接向使用者提供金鑰。
範例( S3 ):
LOCALDB.ADMIN(ADMIN)=> create database mylake with metastoreuri 'thrift://mymetastoreserverhostname:9083' catalogtype 'hive' on awss3 using ( ACCESSKEYID 'xxxx' SECRETACCESSKEY 'xxxx' BUCKET 'example-bucket' REGION 'us-east-1');
NOTICE: 589 tables from the datalake are available in MYLAKE
範例(Azure):
create database mylake with metastoreuri 'thrift://mymetastoreserverhostname:9083' catalogtype 'hive' on azureblob using (ACCOUNT 'xxxx' KEY 'xxxx' CONTAINER 'example_container');
NOTICE: 589 tables from the datalake are available in MYLAKE
有關Azure資料來源選項和身份驗證選項的更多詳細信息,請參閱 建立外部資料來源。
一個資料庫只能分配一個資料來源,如果需要其他資料來源,則必須建立另一個資料湖資料庫。
2. 連接資料庫。
LOCALDB.ADMIN(ADMIN)=> \c mylake
您現在已連接至 mylake 資料庫。
3. 列出可用的綱目。
MYLAKE.NETEZZA_SCHEMA(ADMIN)=> show schema;
依預設,您會連接至稱為 NETEZZA_SCHEMA 的保留綱目。
輸出:
DATABASE | SCHEMA | OWNER
----------+--------------------------------------------+-------
MYLAKE | DEFAULT | ADMIN
MYLAKE | DEFINITION_SCHEMA | ADMIN
MYLAKE | DEMO | ADMIN
MYLAKE | INFORMATION_SCHEMA | ADMIN
MYLAKE | NETEZZA_SCHEMA | ADMIN
MYLAKE | TAXIDATA | ADMIN
MYLAKE | TEST | ADMIN
(7 rows)
4. 從綱目清單中,設定您要連接的綱目。
MYLAKE.NETEZZA_SCHEMA(ADMIN)=> set schema taxidata;
SET SCHEMA
您也可以使用完整路徑 SELECT * from mydb.myschema.mytable來查詢資料。
5. 列出可用的表格。
MYLAKE.TAXIDATA(ADMIN)=> show table;
輸出:
DATABASE | SCHEMA | TABLE | TYPE | OWNER
----------+----------+--------------------------+----------------+-------
MYLAKE | TAXIDATA | YELLOW_TAXI_JANUARY_2022 | DATALAKE TABLE | ADMIN
MYLAKE | TAXIDATA | YELLOW_TAXI_JANUARY_2021 | DATALAKE TABLE | ADMIN
(2 rows)
6. 從 必要表格中選取 *。
MYLAKE.TAXIDATA(ADMIN)=> select * from YELLOW_TAXI_JANUARY_2021 limit 1;
輸出:
VENDORID | TPEP_PICKUP_DATETIME | TPEP_DROPOFF_DATETIME | PASSENGER_COUNT | TRIP_DISTANCE | RATECODEID | STORE_AND_FWD_FLAG | PULOCATIONID | DO
LOCATIONID | PAYMENT_TYPE | FARE_AMOUNT | EXTRA | MTA_TAX | TIP_AMOUNT | TOLLS_AMOUNT | IMPROVEMENT_SURCHARGE | TOTAL_AMOUNT | CONGESTION_SURCHARGE |AIRPORT_FEE
----------+----------------------+-----------------------+-----------------+---------------+------------+--------------------+--------------+---
-----------+--------------+-------------+-------+---------+------------+--------------+-----------------------+--------------+------------------
----+-------------
1 | 2021-01-01 00:30:10 | 2021-01-01 00:36:12 | 1 | 2.1 | 1 | N | 142 |
43 | 2 | 8 | 3 | 0.5 | 0 | 0 | 0.3 | 11.8 |
2.5 |
(1 row)
-
若要識別 2022 年 1 月紐約計程車的總乘客人數,請執行下列指令:
MYLAKE.TAXIDATA(ADMIN)=> select sum(PASSENGER_COUNT) FROM YELLOW_TAXI_JANUARY_2022;輸出:
SUM --------- 3324167 (1 row) -
若要識別在 1:00 AM 與 6:00 AM 之間乘客最多的供應商,請執行:
MYLAKE.TAXIDATA(ADMIN)=> SELECT VENDORID, SUM(PASSENGER_COUNT) as "passengers" FROM YELLOW_TAXI_JANUARY_2022 WHERE TPEP_PICKUP_DATETIME::time > '1:00am'AND "TPEP_PICKUP_DATETIME"::time < '6:00am' GROUP BY VENDORID;輸出:
VENDORID | passengers ----------+------------ 2 | 122251 1 | 40807 6 | 5 | (4 rows)