Utilisation de la console pour extraire des données

Découvrez comment afficher et télécharger les données de table Oracle NoSQL Database Cloud Service à l'aide de la console.

Cet article comprend les rubriques suivantes :

Visualisation des données des tables

Découvrez comment visualiser les données dans des tables Oracle NoSQL Database Cloud Service à partir de la console NoSQL.

Pour afficher les données d'une table, procédez comme suit :

  1. Accédez à la console NoSQL à partir de la console Infrastructure. Reportez-vous à Accès au service à partir de la console Infrastructure.

  2. La console NoSQL répertorie toutes les tables dans la location. Pour afficher les détails d'une table, effectuez l'une des opérations suivantes :

    • Cliquer sur le nom de la table.

    • Cliquer sur le menu d'action correspondant au nom de la table et sélectionner Afficher les détails.

    La page Détails de la table s'ouvre.

  3. Sur la page Détails de cette table, sélectionnez l'onglet Explorer les données sous Ressources.

  4. Par défaut, le texte de requête est rempli avec une requête SQL qui extrait tous les enregistrements de la table. Vous pouvez remplacer cette requête par toute instruction SQL valide pour Oracle NoSQL. Vous pouvez obtenir une erreur indiquant que votre instruction est incomplète ou erronée. Reportez-vous à Débogage des erreurs d'instruction SQL dans la console OCI pour en savoir plus sur les erreurs possibles dans la console OCI et sur la façon de les corriger. Pour obtenir des exemples de requête SQL, reportez-vous au Guide du développeur.

  5. Sélectionnez Exécuter.

    Les données de la table sont affichées dans la section Enregistrements.

  6. Pour afficher le plan d'exécution de requête de la requête SQL exécutée, sélectionnez Afficher le plan d'exécution de requête. Le plan d'exécution détaillé de la requête s'affiche dans une nouvelle fenêtre.

Téléchargement de données de table

  1. Accédez à la console NoSQL à partir de la console Infrastructure. Reportez-vous à Accès au service à partir de la console Infrastructure.

  2. La console NoSQL répertorie toutes les tables dans la location. Pour afficher les détails d'une table, effectuez l'une des opérations suivantes :

    • Cliquer sur le nom de la table.

    • Cliquer sur le menu d'action correspondant au nom de la table et sélectionner Afficher les détails.

    La page Détails de la table s'ouvre.

  3. Sur la page Détails de cette table, sélectionnez l'onglet Explorer les données sous Ressources.

  4. Par défaut, le texte de requête est rempli avec une requête SQL qui extrait tous les enregistrements de la table. Vous pouvez remplacer cette requête par toute instruction SQL valide pour Oracle NoSQL. Vous pouvez obtenir une erreur indiquant que votre instruction est incomplète ou erronée. Reportez-vous à Débogage des erreurs d'instruction SQL dans la console OCI pour en savoir plus sur les erreurs possibles dans la console OCI et sur la façon de les corriger. Reportez-vous au Guide des développeurs pour obtenir des exemples de requête SQL.

  5. Cliquez sur le menu d'action correspondant à la ligne à télécharger, puis sélectionnez Télécharger le fichier JSON.

    La ligne est téléchargée au format JSON.

Utilisation de commandes SQL pour extraire des données

Vous pouvez utiliser l'instruction SQL SELECT pour extraire des données de la table NoSQL.

Extraction de toutes les lignes d'une table

Vous pouvez choisir des colonnes dans une table. Pour ce faire, répertoriez les noms des colonnes de table souhaitées après SELECT dans l'instruction. Vous indiquez le nom de la table après la clause FROM. Pour extraire des données d'une table enfant, utilisez la notation par points, telle que parent.child. Pour sélectionner toutes les colonnes de la table, utilisez l'astérisque (*) comme caractère générique. L'instruction SELECT peut également contenir des expressions de calcul basées sur les valeurs des colonnes existantes.

Exemple 1 : sélectionnez toutes les données de la table BaggageInfo.

SELECT * FROM BaggageInfo

Explication : Le schéma BaggageInfo contient des champs statiques fixes et une colonne JSON. Les champs statiques sont le numéro de ticket, le nom complet, le sexe, le numéro de téléphone du contact et le numéro de confirmation. Les informations de conteneur sont stockées au format JSON et sont alimentées par un tableau de documents.

Sortie (affichant uniquement une ligne du résultat par souci de concision) :

{"ticketNo":1762330498104,"fullName":"Michelle Payne","gender":"F","contactPhone":"575-781-6240","confNo":"RL3J4Q",
"bagInfo":[{
   "bagArrivalDate":"2019-02-02T23:59:00Z",
   "flightLegs":[
      {"actions":[
           {"actionAt":"SFO","actionCode":"ONLOAD to IST","actionTime":"2019-02-02T12:10:00Z"},
           {"actionAt":"SFO","actionCode":"BagTag Scan at SFO","actionTime":"2019-02-02T11:47:00Z"},
           {"actionAt":"SFO","actionCode":"Checkin at SFO","actionTime":"2019-02-02T10:01:00Z"}],
           "estimatedArrival":"2019-02-03T01:00:00Z",
           "flightDate":"2019-02-02T12:00:00Z",
           "flightNo":"BM318",
           "fltRouteDest":"IST",
           "fltRouteSrc":"SFO"},
      {"actions":[
           {"actionAt":"IST","actionCode":"ONLOAD to ATH","actionTime":"2019-02-03T13:06:00Z"},
           {"actionAt":"IST","actionCode":"BagTag Scan at IST","actionTime":"2019-02-03T12:48:00Z"},
           {"actionAt":"IST","actionCode":"OFFLOAD from IST","actionTime":"2019-02-03T13:00:00Z"}],
           "estimatedArrival":"2019-02-03T12:12:00Z",
           "flightDate":"2019-02-02T13:10:00Z",
           "flightNo":"BM696",
           "fltRouteDest":"ATH",
           "fltRouteSrc":"IST"},
      {"actions":[
           {"actionAt":"JTR","actionCode":"Offload to Carousel at JTR","actionTime":"2019-02-03T00:06:00Z"},
           {"actionAt":"ATH","actionCode":"ONLOAD to JTR","actionTime":"2019-02-03T00:13:00Z"},
           {"actionAt":"ATH","actionCode":"OFFLOAD from ATH","actionTime":"2019-02-03T00:10:00Z"}],
           "estimatedArrival":"2019-02-03T00:12:00Z",
           "flightDate":"2019-2-2T12:10:00Z",
           "flightNo":"BM665",
           "fltRouteDest":"JTR",
           "fltRouteSrc":"ATH"}],
     "id":"79039899186259",
     "lastActionCode":"OFFLOAD",
     "lastActionDesc":"OFFLOAD",
     "lastSeenStation":"JTR",
     "lastSeenTimeGmt":"2019-02-02T23:59:00Z",
     "routing":"SFO/IST/ATH/JTR",
     "tagNum":"17657806247861"}
]}

Exemple 2 : pour choisir des colonnes spécifiques dans la table BaggageInfo, incluez les noms de colonne sous forme de liste séparée par des virgules dans l'instruction SELECT.

SELECT fullName, contactPhone, gender FROM BaggageInfo

Explication : Vous souhaitez afficher les valeurs de trois champs statiques : nom complet, numéro de téléphone et sexe.

Sortie :

{"fullName":"Lucinda Beckman","contactPhone":"364-610-4444","gender":"M"}
{"fullName":"Adelaide Willard","contactPhone":"421-272-8082","gender":"M"}
{"fullName":"Raymond Griffin","contactPhone":"567-710-9972","gender":"F"}
{"fullName":"Elane Lemons","contactPhone":"600-918-8404","gender":"F"}
{"fullName":"Zina Christenson","contactPhone":"987-210-3029","gender":"M"}
{"fullName":"Zulema Martindale","contactPhone":"666-302-0028","gender":"F"}
{"fullName":"Dierdre Amador","contactPhone":"165-742-5715","gender":"M"}
{"fullName":"Henry Jenkins","contactPhone":"960-428-3843","gender":"F"}
{"fullName":"Rosalia Triplett","contactPhone":"368-769-5636","gender":"F"}
{"fullName":"Lorenzo Phil","contactPhone":"364-610-4444","gender":"M"}
{"fullName":"Gerard Greene","contactPhone":"395-837-3772","gender":"M"}
{"fullName":"Adam Phillips","contactPhone":"893-324-1064","gender":"M"}
{"fullName":"Doris Martin","contactPhone":"289-564-3497","gender":"F"}
{"fullName":"Joanne Diaz","contactPhone":"334-679-5105","gender":"F"}
{"fullName":"Omar Harvey","contactPhone":"978-191-8550","gender":"F"}
{"fullName":"Fallon Clements","contactPhone":"849-731-1334","gender":"M"}
{"fullName":"Lisbeth Wampler","contactPhone":"796-709-9501","gender":"M"}
{"fullName":"Teena Colley","contactPhone":"539-097-5220","gender":"M"}
{"fullName":"Michelle Payne","contactPhone":"575-781-6240","gender":"F"}
{"fullName":"Mary Watson","contactPhone":"131-183-0560","gender":"F"}
{"fullName":"Kendal Biddle","contactPhone":"619-956-8760","gender":"F"}

Exemple 3 : choisissez toutes les données de la table stream_acct.

SELECT * FROM stream_acct

Explication :Le schéma stream_acct contient des champs statiques fixes et une colonne JSON.

Sortie (affichant uniquement une ligne du résultat par souci de concision) :

{"acct_id":1,"profile_name":"AP","account_expiry":"2023-10-18T00:00:00.0Z",
"acct_data":{
[{
   "showName": "At the Ranch",
   "showId": 26,
   "showtype": "tvseries",
   "genres": ["action", "crime", "spanish"],
   "numSeasons": 4,
   "seriesInfo": [{
      "seasonNum": 1,
      "numEpisodes": 2,
      "episodes": [{
         "episodeID": 20,
         "episodeName": "Season 1 episode 1",
         "lengthMin": 85,
         "minWatched": 85,
         "date": "2022-04-18"
      },
      {
         "episodeID": 30,
         "lengthMin": 60,
         "episodeName": "Season 1 episode 2",
         "minWatched": 60,
         "date": "2022 - 04 - 18 "
      }]
   },
   {
      "seasonNum": 2,
      "numEpisodes": 2,
      "episodes": [{
         "episodeID": 40,
         "episodeName": "Season 2 episode 1",
         "lengthMin": 50,
         "minWatched": 50,
         "date": "2022-04-25"
      },
      {
         "episodeID": 50,
         "episodeName": "Season 2 episode 2",
         "lengthMin": 45,
         "minWatched": 30,
         "date": "2022-04-27"
      }]
   },
   {
      "seasonNum": 3,
      "numEpisodes": 2,
      "episodes": [{
         "episodeID": 60,
         "episodeName": "Season 3 episode 1",
         "lengthMin": 50,
         "minWatched": 50,
         "date": "2022-04-25"
      },
      {
         "episodeID": 70,
         "episodeName": "Season 3 episode 2",
         "lengthMin": 45,
         "minWatched": 30,
         "date": "2022 - 04 - 27 "
      }]
   }]
},
{
   "showName": "Bienvenu",
   "showId": 15,
   "showtype": "tvseries",
   "genres": ["comedy", "french"],
   "numSeasons": 2,
   "seriesInfo": [{
      "seasonNum": 1,
      "numEpisodes": 2,
      "episodes": [{
         "episodeID": 20,
         "episodeName": "Bonjour",
         "lengthMin": 45,
         "minWatched": 45,
         "date": "2022-03-07"
      },
      {
         "episodeID": 30,
         "episodeName": "Merci",
         "lengthMin": 42,
         "minWatched": 42,
         "date": "2022-03-08"
      }]
   }]
}]}}

Filtrer les données à partir d'une table

Vous pouvez filtrer les résultats d'une requête en indiquant une condition de filtre dans la clause WHERE. En général, une condition de filtre consiste en une ou plusieurs expressions de comparaison connectées via les opérateurs logiques AND ou OR. Les opérateurs de comparaison suivants sont également pris en charge : =, !=, >, >=, < et <= .

Exemple 1 : Recherchez le numéro d'étiquette du bagage d'un passager ainsi que le nom complet du passager pour un numéro de réservation donné FH7G1W.

SELECT bag.fullName, bag.bagInfo[].tagNum FROM BaggageInfo bag
WHERE bag.confNo="FH7G1W"

Explication : vous extrayez le numéro d'étiquette correspondant à un numéro de réservation donné.

Sortie :

{"fullName":"Rosalia Triplett","tagNum":"17657806215913"}

Remarque : pour une meilleure compréhension, la ligne de données avec tous les champs statiques et le format JSON bagInfo est affichée ci-dessous.

   {
   "ticketNo": 1762344493810,
   "fullName": "Adam Phillips",
   "gender": "M",
   "contactPhone": "893-324-1064",
   "confNo": "LE6J4Z",
   "bags": [
     {
       "id": "79039899165297",
       "tagNum": "17657806255240",
       "routing": "MIA/LAX/MEL",
       "lastActionCode": "OFFLOAD",
       "lastActionDesc": "OFFLOAD",
       "lastSeenStation": "MEL",
       "flightLegs": [
         {
           "flightNo": "BM604",
           "flightDate": "2019-02-01T01:00:00",
           "fltRouteSrc": "MIA",
           "fltRouteDest": "LAX",
           "estimatedArrival": "2019-02-01T03:00:00",
           "actions": [
             {
               "actionAt": "MIA",
               "actionCode": "ONLOAD to LAX",
               "actionTime": "2019-02-01T01:13:00"
             },
             {
               "actionAt": "MIA",
               "actionCode": "BagTag Scan at MIA",
               "actionTime": "2019-02-01T00:47:00"
             },
             {
               "actionAt": "MIA",
               "actionCode": "Checkin at MIA",
               "actionTime": "2019-02-01T23:38:00"
             }
           ]
         },
         {
           "flightNo": "BM667",
           "flightDate": "2019-01-31T22:13:00",
           "fltRouteSrc": "LAX",
           "fltRouteDest": "MEL",
           "estimatedArrival": "2019-02-02T03:15:00",
           "actions": [
             {
               "actionAt": "MEL",
               "actionCode": "Offload to Carousel at MEL",
               "actionTime": "2019-02-02T03:15:00"
             },
             {
               "actionAt": "LAX",
               "actionCode": "ONLOAD to MEL",
               "actionTime": "2019-02-01T07:35:00"
             },
             {
               "actionAt": "LAX",
               "actionCode": "OFFLOAD from LAX",
               "actionTime": "2019-02-01T07:18:00"
             }
           ]
         }
       ],
       "lastSeenTimeGmt": "2019-02-02T03:13:00",
       "bagArrivalDate": "2019.02.02T03:13:00"
     }
   ]
  }
 {: .infoboxnote}

Exemple 2 : Où le bagage portant le numéro de réservation FH7G1W a-t-il été vu pour la dernière fois ? Récupérez également le numéro d'étiquette du bagage.

SELECT bag.fullName, bag.bagInfo[].tagNum,bag.bagInfo[].lastSeenStation
FROM BaggageInfo bag WHERE bag.confNo="FH7G1W"

Explication : le fichier bagInfo est JSON et est rempli avec un tableau de documents. Le nom complet et la dernière station vue peuvent être extraits pour un numéro de réservation particulier.

Sortie :

{"fullName":"Rosalia Triplett","tagNum":"17657806215913",
"lastSeenStation":"VIE"}

Exemple 3 : sélectionnez les détails des sacs (étiquette et heure de la dernière visite) pour un passager portant le numéro de billet 1762340579411.

SELECT bag.ticketNo, bag.fullName, bag.bagInfo[].tagNum,bag.bagInfo[].lastSeenStation
FROM BaggageInfo bag where bag.ticketNo=1762320369957

Explication : le fichier bagInfo est JSON et est rempli avec un tableau de documents. Le nom complet, le numéro de balise et la dernière station vue peuvent être extraits pour un numéro de ticket particulier.

Sortie :

{"fullName":"Lorenzo Phil","tagNum":["17657806240001","17657806340001"],
"lastSeenStation":["JTR","JTR"]}

Exemple 4 : Récupérez le nom, la date d'expiration du compte et les émissions surveillées par l'utilisateur avec acct_id 1.

SELECT account_expiry, acct.acct_data.lastName, acct.acct_data.contentStreamed[].showName FROM stream_acct acct WHERE acct_id=1

Explication : le fichier acct_data est JSON et est rempli avec un tableau de documents. Le nom, la date d'expiration du compte et les noms d'affichage sont extraits pour un ID de compte particulier.

Sortie :

{"account_expiry":"2023-10-18T00:00:00.0Z","lastName":"Phillips","showName":["At the Ranch","Bienvenu"]}