- external table
- 파티셔닝
- 클러스터링
- 하나 이상의 열(최대 4개)을 기준으로 테이블의 데이터를 재정렬합니다.
- 열의 순서는 열의 우선 순위 결정과 관련이 있습니다.
- 조건문 또는 집계 함수를 사용하는 쿼리의 성능 향상
- 파티션과 동시에 클러스터를 생성할 수 있습니다.
-
CREATE OR REPLACE TABLE dtc-de-382512.dezoomcamp.yellow_tripdata_partitoned_clustered PARTITION BY DATE(tpep_pickup_datetime) CLUSTER BY VendorID AS SELECT * FROM dtc-de-382512.dezoomcamp.external_yellow_tripdata;
- ML을 위한 데이터셋을 만들어 줍니다.
-
-- CREATE A ML TABLE WITH APPROPRIATE TYPE CREATE OR REPLACE TABLE `taxi-rides-ny.nytaxi.yellow_tripdata_ml` ( `passenger_count` INTEGER, `trip_distance` FLOAT64, `PULocationID` STRING, `DOLocationID` STRING, `payment_type` STRING, `fare_amount` FLOAT64, `tolls_amount` FLOAT64, `tip_amount` FLOAT64 ) AS ( SELECT passenger_count, trip_distance, cast(PULocationID AS STRING), CAST(DOLocationID AS STRING), CAST(payment_type AS STRING), fare_amount, tolls_amount, tip_amount FROM `taxi-rides-ny.nytaxi.yellow_tripdata_partitoned` WHERE fare_amount != 0 );
-
- tip_amount을 예측하는 목적으로 선형 회귀 모델을 만들어줍니다.
-
CREATE OR REPLACE MODEL `taxi-rides-ny.nytaxi.tip_model` OPTIONS (model_type='linear_reg', input_label_cols=['tip_amount'], DATA_SPLIT_METHOD='AUTO_SPLIT') AS SELECT * FROM `taxi-rides-ny.nytaxi.yellow_tripdata_ml` WHERE tip_amount IS NOT NULL;
- MODELE_TYPE='linear_reg'에서는 선형 회귀 모델을 만듭니다.
- INPUT_LABEL_COLS=['tip_amount']에서는 모델을 학습하고 사용하는 데 사용할 열 배열입니다.
- DATA_SPLIT_METHOD='AUTO_SPLIT'에서는 데이터 세트를 훈련용과 테스트용(훈련/테스트)의 두 부분으로 자동 분할하도록 지정합니다.
-
- 변수를 확인합니다.
- 모델을 평가합니다.
-
SELECT * FROM ML.EVALUATE(MODEL `dtc-de-382512.dezoomcamp.tip_model`, ( SELECT * FROM `dtc-de-382512.dezoomcamp.yellow_tripdata_ml` WHERE tip_amount IS NOT NULL ));
-
- 모델을 예측합니다.
- 모델을 예측하고 설명합니다.
- 파라미터를 튜닝도 가능합니다.
-
CREATE OR REPLACE MODEL `dtc-de-382512.dezoomcamp.tip_hyperparam_model` OPTIONS (model_type='linear_reg', input_label_cols=['tip_amount'], DATA_SPLIT_METHOD='AUTO_SPLIT', num_trials=5, max_parallel_trials=2, l1_reg=hparam_range(0, 20), l2_reg=hparam_candidates([0, 0.1, 1, 10])) AS SELECT * FROM `dtc-de-382512.dezoomcamp.yellow_tripdata_ml` WHERE tip_amount IS NOT NULL;
-
-
gcloud auth login
-
bq --project_id dtc-de-382512 extract -m dezoomcamp.tip_model gs://taxi_ml_model_js/tip_model : gs에 gcp의 모델을 만들어줍니다.
-
mkdir /tmp/model
-
gsutil cp -r gs://taxi_ml_model_js/tip_model /tmp/model
-
mkdir -p serving_dir/tip_model/1
-
cp -r /tmp/model/tip_model/* serving_dir/tip_model/1
-
docker pull tensorflow/serving
-
docker run -p 8501:8501 --mount type=bind,source=
pwd
/serving_dir/tip_model,target=/models/tip_model -e MODEL_NAME=tip_model -t tensorflow/serving & -
curl -d '{"instances": [{"passenger_count":1, "trip_distance":12.2, "PULocationID":"193", "DOLocationID":"264","payment_type":"2","fare_amount":20.4,"tolls_amount":0.0}]}' -X POST http://localhost:8501/v1/models/tip_model:predict
-