डेटासेट बनाने की प्रोसेस दो चरणों में होती है:
डेटासेट बनाने के लिए अनुरोध करें.
डेटासेट में डेटा अपलोड करने के लिए अनुरोध करें.
शुरुआती डेटा अपलोड करने के बाद, डेटासेट में नया डेटा अपलोड किया जा सकता है, ताकि डेटासेट का एक नया वर्शन है.
डेटासेट बनाना
यहां 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 या लोकल फ़ाइल से डेटासेट में भेजा जा सकता है.
अपलोड की कार्रवाई एसिंक्रोनस है. डेटा अपलोड करने के बाद, डेटा डाला और प्रोसेस किया गया. इसका मतलब है कि मॉनिटर करने के लिए, आपको एचटीटीपी 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.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" }
फ़ाइल से डेटा अपलोड करें
किसी फ़ाइल से डेटा अपलोड करने के लिए, 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" }
डेटा प्रोसेसिंग की स्थिति का पता लगाना
अपलोड की कार्रवाई एसिंक्रोनस है. इसका मतलब है कि अपलोड करने के लिए, एपीआई कॉल के बाद डेटासेट की ओर डेटा वापस भेजता है, तो आपको यह निर्धारित करने के लिए डेटासेट को पोल करना होगा डेटा डालने और प्रोसेस करने की प्रोसेस पूरी हुई या नहीं.
नियम के 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
.
उदाहरण के लिए, डेटासेट में डेटा अपलोड करने के बाद जीईटी
डेटासेट की जानकारी पाने का अनुरोध करें. 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
एपीआई. यह एपीआई, डेटासेट से जुड़ी डेटा प्रोसेसिंग की सभी गड़बड़ियां दिखाता है:
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
कलेक्शन शामिल है. इस श्रेणी में
Status
टाइप करें
हर कॉल पर लागू होती है. साथ ही, कुल 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 से ज़्यादा गड़बड़ियां हैं, तो इसका मतलब है कि गड़बड़ी के एक से ज़्यादा पेज
तो 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
डेटासेट के पिछले वर्शन को "चालू है" के तौर पर ही प्रोसेस किया गया है वर्शन है और आपके ऐप्लिकेशन में इस्तेमाल किया गया वर्शन.