डेटासेट बनाना

डेटासेट बनाने की प्रोसेस दो चरणों में होती है:

  1. डेटासेट बनाने के लिए अनुरोध करें.

  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 या लोकल फ़ाइल से डेटासेट में भेजा जा सकता है.

अपलोड की कार्रवाई एसिंक्रोनस है. डेटा अपलोड करने के बाद, डेटा डाला और प्रोसेस किया गया. इसका मतलब है कि मॉनिटर करने के लिए, आपको एचटीटीपी 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
  • डेटासेट के पिछले वर्शन को "चालू है" के तौर पर ही प्रोसेस किया गया है वर्शन है और आपके ऐप्लिकेशन में इस्तेमाल किया गया वर्शन.