การสร้างชุดข้อมูลเป็นกระบวนการที่มี 2 ขั้นตอน ดังนี้
ส่งคำขอเพื่อสร้างชุดข้อมูล
ส่งคำขอเพื่ออัปโหลดข้อมูลไปยังชุดข้อมูล
หลังจากการอัปโหลดข้อมูลครั้งแรก คุณสามารถอัปโหลดข้อมูลใหม่ไปยังชุดข้อมูลเพื่อสร้าง ชุดข้อมูลเวอร์ชันใหม่
สร้างชุดข้อมูล
สร้างชุดข้อมูลโดยส่งคำขอ POST
ไปยัง
ปลายทาง datasets:
https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets
ส่งเนื้อหา JSON กับคำขอกำหนดชุดข้อมูล คุณต้องปฏิบัติดังนี้
ระบุ
displayName
ของชุดข้อมูล ค่าของdisplayName
ต้อง ไม่ซ้ำกันสำหรับชุดข้อมูลทั้งหมดตั้งค่า
usage
เป็นUSAGE_DATA_DRIVEN_STYLING
เช่น
curl -X POST -d '{ "displayName": "My Test Dataset", "usage": "USAGE_DATA_DRIVEN_STYLING" }' \ -H 'X-Goog-User-Project: PROJECT_NUMBER_OR_ID' \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $TOKEN" \ "https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets"
การตอบกลับจะมีรหัสของชุดข้อมูลในรูปแบบ
projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID
รวมถึงข้อมูลเพิ่มเติม ใช้รหัสชุดข้อมูลเมื่อส่งคำขอไปยัง
อัปเดตหรือแก้ไขชุดข้อมูล
{ "name": "projects/PROJECT_NUMBER_OR_ID/datasets/f57074a0-a8b6-403e-9df1-e9fc46", "displayName": "My Test Dataset", "usage": [ "USAGE_DATA_DRIVEN_STYLING" ], "createTime": "2022-08-15T17:50:00.189682Z", "updateTime": "2022-08-15T17:50:00.189682Z" }
อัปโหลดข้อมูลไปยังชุดข้อมูล
หลังจากที่คุณสร้างชุดข้อมูล ให้อัปโหลดข้อมูลจาก Google Cloud Storage หรือจากไฟล์ในเครื่องไปยังชุดข้อมูล
การดำเนินการอัปโหลดจะเป็นแบบไม่พร้อมกัน หลังจากที่คุณอัปโหลดข้อมูล ข้อมูลจะ ส่งผ่านและประมวลผล นั่นหมายความว่าคุณต้องสร้างคำขอ HTTP GET เพื่อตรวจสอบ สถานะของชุดข้อมูลเพื่อระบุว่าชุดข้อมูลนั้นพร้อมใช้งานเมื่อใด หรือ เกิดข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่รับการประมวลผลข้อมูล
อัปโหลดข้อมูลจาก Cloud Storage
คุณอัปโหลดจาก Cloud Storage ไปยังชุดข้อมูลโดยส่งคำขอ POST
ไปยัง
datasets ที่
รวมรหัสของชุดข้อมูล:
https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID:import
ในเนื้อหาคำขอ JSON:
ใช้
inputUri
เพื่อระบุเส้นทางของไฟล์ไปยังทรัพยากรที่มีข้อมูล ใน Cloud Storage เส้นทางนี้อยู่ในรูปแบบgs://GCS_BUCKET/FILE
ผู้ใช้ที่ส่งคำขอต้องใช้ Storage Object ผู้มีสิทธิ์ดู หรือบทบาทอื่นๆ ที่มีสิทธิ์
storage.objects.get
สำหรับ ข้อมูลเพิ่มเติมเกี่ยวกับการจัดการการเข้าถึง Cloud Storage โปรดดู ภาพรวมของการควบคุมการเข้าถึงใช้
fileFormat
เพื่อระบุรูปแบบไฟล์ของข้อมูลเป็นFILE_FORMAT_GEOJSON
(ไฟล์ GeoJson),FILE_FORMAT_KML
(ไฟล์ KML) หรือFILE_FORMAT_CSV
(ไฟล์ CSV)
เช่น
curl -X POST -d '{ "gcs_source":{ "inputUri": "gs://my_bucket/my_csv_file", "fileFormat": "FILE_FORMAT_CSV" } }' \ -H 'X-Goog-User-Project: PROJECT_NUMBER_OR_ID' \ -H "content-type: application/json" \ -H "Authorization: Bearer $TOKEN" \ "https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/f57074a0-a8b6-403e-9df1-e9fc46:import"
คำตอบจะอยู่ในรูปแบบดังนี้
{ "name": "projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID@VERSION_NUMBER" }
อัปโหลดข้อมูลจากไฟล์
หากต้องการอัปโหลดข้อมูลจากไฟล์ ให้ส่งคำขอ HTTP POST
ไปยัง
datasets ที่
รวมรหัสของชุดข้อมูล:
https://mapsplatformdatasets.googleapis.com/upload/v1/projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID:import
คำขอประกอบด้วย:
ตั้งค่าส่วนหัว
Goog-Upload-Protocol
เป็นmultipart
พร็อพเพอร์ตี้
metadata
ที่ระบุเส้นทางไปยังไฟล์ที่ระบุ ประเภทข้อมูลที่จะอัปโหลด ได้แก่FILE_FORMAT_GEOJSON
(ไฟล์ GeoJSON)FILE_FORMAT_KML
(ไฟล์ KML) หรือFILE_FORMAT_CSV
(ไฟล์ CSV)เนื้อหาของไฟล์นี้จะมีรูปแบบดังต่อไปนี้
{"local_file_source": {"file_format": "FILE_FORMAT_GEOJSON"}}
พร็อพเพอร์ตี้
rawdata
ที่ระบุเส้นทางไปยังไฟล์ GeoJSON, KML หรือ CSV ที่มีข้อมูลที่จะอัปโหลด
คำขอต่อไปนี้ใช้ตัวเลือก curl -F
เพื่อระบุเส้นทางไปยัง
ไฟล์:
curl -X POST \ -H 'X-Goog-User-Project: PROJECT_NUMBER_OR_ID' \ -H "Authorization: Bearer $TOKEN" \ -H "X-Goog-Upload-Protocol: multipart" \ -F "metadata=@csv_metadata_file" \ -F "rawdata=@csv_data_file" \ "https://mapsplatformdatasets.googleapis.com/upload/v1/projects/PROJECT_NUMBER_OR_ID/datasets/f57074a0-a8b6-403e-9df1-e9fc46:import"
คำตอบจะอยู่ในรูปแบบดังนี้
{ "name": "projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID@VERSION_NUMBER" }
รับสถานะการประมวลผลข้อมูล
การดำเนินการอัปโหลดจะเป็นแบบไม่พร้อมกัน ซึ่งหมายความว่าหลังจากการเรียก API เพื่ออัปโหลด ข้อมูลที่ส่งคืนไปยังชุดข้อมูล คุณจะต้องสำรวจชุดข้อมูลเพื่อระบุ การนำเข้าและประมวลผลข้อมูลสำเร็จหรือล้มเหลว
ในการระบุ state
ของ
ให้ใช้รับชุดข้อมูล ตัวอย่างเช่น ในขณะที่ข้อมูลกำลัง
ประมวลผลแล้ว state
ได้รับการตั้งค่าเป็น STATE_PROCESSING
เมื่อชุดข้อมูลพร้อมแล้ว
ใช้ในแอปของคุณ state
ได้รับการตั้งค่าเป็น STATE_COMPLETED
ตัวอย่างเช่น เรียก GET บนชุดข้อมูลดังนี้
curl -X GET \ -H "X-Goog-User-Project: PROJECT_NUMBER_OR_ID" \ -H "Authorization: Bearer $TOKEN" \ "https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/f57074a0-a8b6-403e-9df1-e9fc46"
state
ของชุดข้อมูลคือ STATE_COMPLETED
เพื่อให้อัปโหลดได้สำเร็จ
{ "name": "projects/119757857/datasets/f57074a0-a8b6-403e-9df1-e9fc46", "displayName": "My Test Dataset", "description": " ", "versionId": "837c5a9e-c885-4a5f-a462-7e35673e5218", "usage": [ "USAGE_DATA_DRIVEN_STYLING" ], "localFileSource": { "filename": "Parks_Properties_20240529.csv", "fileFormat": "FILE_FORMAT_CSV" }, "createTime": "2024-05-30T16:41:11.130816Z", "updateTime": "2024-05-30T16:41:14.416130Z", "versionCreateTime": "2024-05-30T16:41:14.416130Z", "status": { "state": "STATE_COMPLETED", }, "sizeBytes": "6916924", "downloadable": true }
เมื่อการประมวลผลข้อมูลล้มเหลว state
จะถูกตั้งค่าเป็นค่าอื่นที่ไม่ใช่
STATE_COMPLETED
เช่น STATE_PUBLISHING_FAILED
หรือสถานะใดๆ ที่ลงท้ายด้วย
สตริง _FAILED
เช่น คุณอัปโหลดข้อมูลไปยังชุดข้อมูลแล้วสร้าง GET
ขอรับรายละเอียดชุดข้อมูล นอกจากพร็อพเพอร์ตี้ state
แล้ว
การตอบกลับยังมีพร็อพเพอร์ตี้ errorMessage
รายการเดียวที่มีคำอธิบาย
ของข้อผิดพลาด
{ "name": "projects/119757857/datasets/f57074a0-a8b6-403e-9df1-e9fc46", "displayName": "My Test Dataset", "description": " ", "versionId": "837c5a9e-c885-4a5f-a462-7e35673e5218", "usage": [ "USAGE_DATA_DRIVEN_STYLING" ], "localFileSource": { "filename": "Parks_Properties_20240529.csv", "fileFormat": "FILE_FORMAT_CSV" }, "createTime": "2024-05-30T16:41:11.130816Z", "updateTime": "2024-05-30T16:41:14.416130Z", "versionCreateTime": "2024-05-30T16:41:14.416130Z", "status": { "state": "STATE_PUBLISHING_FAILED", "errorMessage": "INVALID_ARGUMENT: Skipping row because address could not be geocoded: 5521 18 AVENUE (from line 79)" }, "sizeBytes": "6916924", "downloadable": true }
รับข้อผิดพลาดในการประมวลผลข้อมูล
เมื่อนำเข้าและประมวลผลข้อมูลไม่สำเร็จ พร็อพเพอร์ตี้ errorMessage
จะมี
ข้อความเดียวที่อธิบายข้อผิดพลาด แต่ข้อความแสดงข้อผิดพลาดเพียงข้อความเดียวจะไม่
ให้ข้อมูลที่เพียงพอในการระบุและแก้ไขปัญหา
หากต้องการรับข้อมูลข้อผิดพลาดทั้งหมด โปรดเรียกใช้
fetchDatasetErrors
API API นี้จะแสดงข้อผิดพลาดในการประมวลผลข้อมูลทั้งหมดที่เกี่ยวข้องกับชุดข้อมูล:
curl -X GET \ -H "X-Goog-User-Project: PROJECT_NUMBER_OR_ID" \ -H "Authorization: Bearer $TOKEN" \ "https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/f57074a0-a8b6-403e-9df1-e9fc46:fetchDatasetErrors"
การตอบกลับจะมีอาร์เรย์ errors
อาร์เรย์นี้มีข้อผิดพลาดสูงสุด 50 รายการ ได้แก่
ประเภท Status
ต่อการเรียก 1 ครั้ง และรองรับข้อผิดพลาดรวมสูงสุด 500 รายการ
{ "nextPageToken": "cigKJkIkMTU3MzM0NjQtYzlmMy00YzYxLWIxM2YtYmVkYjFjYjRkYzRj", "errors": [ { "code": 3, "message": "INVALID_ARGUMENT: No address was derived from fields 2. (from line 631)" }, { "code": 3, "message": "INVALID_ARGUMENT: No address was derived from fields 2. (from line 457)" }, { "code": 3, "message": "INVALID_ARGUMENT: No address was derived from fields 2. (from line 31)" }, ... ] }
หากมีข้อผิดพลาดมากกว่า 50 รายการ หมายความว่ามีมากกว่า 1 หน้า
จากนั้นการตอบกลับจะมีโทเค็นของหน้าเว็บในช่อง nextPageToken
ส่งค่านั้นในพารามิเตอร์การค้นหา pageToken
ของการเรียกครั้งต่อๆ ไป
หน้าถัดไป เมื่อ nextPageToken
ว่างเปล่า ระบบจะไม่มีหน้าเพิ่มเติม
เช่น หากต้องการดูข้อผิดพลาดหน้าถัดไปโดยใช้โทเค็น การตอบกลับ:
curl -X GET \ -H "content-type: application/json" \ -H "X-Goog-User-Project: PROJECT_NUMBER_OR_ID" \ -H "Authorization: Bearer $TOKEN" \ "https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/f57074a0-a8b6-403e-9df1-e9fc46:fetchDatasetErrors?pageToken=cigKJkIkMTU3MzM0NjQtYzlmMy00YzYxLWIxM2YtYmVkYjFjYjRkYzRj"
โดยค่าเริ่มต้น การตอบกลับจะมีข้อผิดพลาดได้สูงสุด 50 รายการต่อหน้า ใช้
พารามิเตอร์การค้นหา pageSize
เพื่อควบคุมขนาดหน้าเว็บ
อัปโหลดข้อมูลใหม่ไปยังชุดข้อมูล
หลังจากที่คุณสร้างชุดข้อมูลและอัปโหลดข้อมูลเบื้องต้นเรียบร้อยแล้ว สถานะ
ของชุดข้อมูลตั้งค่าไว้เป็น STATE_COMPLETED
ซึ่งหมายความว่าชุดข้อมูลจะพร้อม
ใช้ในแอปของคุณ หากต้องการระบุ state
ของชุดข้อมูล โปรดดูรับ
ชุดข้อมูล
นอกจากนี้ คุณยังอัปโหลดข้อมูลใหม่ลงในชุดข้อมูลเพื่อสร้างเวอร์ชันใหม่ของ ชุดข้อมูล ในการอัปโหลดข้อมูลใหม่ ให้ใช้กระบวนการเดียวกับที่คุณใช้ในการอัปโหลดข้อมูลใหม่ จาก Cloud Storage หรืออัปโหลดข้อมูลจากไฟล์ และระบุข้อมูลใหม่ที่จะอัปโหลด
หากข้อมูลใหม่อัปโหลดสำเร็จ
สถานะของชุดข้อมูลเวอร์ชันใหม่ได้รับการตั้งค่าเป็น
STATE_COMPLETED
เวอร์ชันใหม่จะเปลี่ยนเป็น "ใช้งาน" เวอร์ชันและเป็นเวอร์ชันที่ แอป
หากมีข้อผิดพลาดในการอัปโหลด ให้ทำดังนี้
สถานะของชุดข้อมูลเวอร์ชันใหม่ได้รับการตั้งค่าเป็นสถานะใดสถานะหนึ่งต่อไปนี้
STATE_IMPORT_FAILED
STATE_PROCESSING_FAILED
STATE_PUBLISHING_FAILED
STATE_DELETION_FAILED
ชุดข้อมูลเวอร์ชันก่อนหน้าที่สําเร็จจะยังคงเป็น "ใช้งานอยู่" เวอร์ชันและ เวอร์ชันที่แอปของคุณใช้