Integrazione di Vision con Oracle Analytics Cloud (OAC)

Crea un flusso di integrazione dati che utilizza il kit SDK Vision per rilevare gli oggetti nelle immagini e proiettare tali informazioni in una tabella di un data warehouse. Questi dati di output vengono quindi utilizzati da Oracle Analytics Cloud per creare visualizzazioni e trovare pattern.

Questo è il flusso di alto livello del sistema tra Vision e OAC: Flusso tra Vision e OAC, a partire dall'asset dati di input come file CSV in Data Integration. Questo viene elaborato e trasmesso come dati di output in una tabella di oggetti ADW che viene quindi utilizzata come origine per OAC.

Informazioni preliminari

Per seguire questa esercitazione, è necessario essere in grado di creare reti VCN, funzioni e gateway API e utilizzare Data Integration and Vision.

Parlare con l'amministratore dei criteri richiesti.

Impostazione dei criteri necessari

Attenersi alla procedura riportata di seguito per impostare i criteri necessari.

  1. Nel menu di navigazione della console selezionare Identità e sicurezza.
  2. In Identità, selezionare Criteri.
  3. Selezionare Crea criterio.
  4. Nel pannello Crea criterio, popolare Nome e Descrizione.
    In Nome, immettere un nome senza spazi. È possibile utilizzare solo caratteri alfanumerici, trattini, punti e caratteri di sottolineatura.

    In Descrizione, immettere una descrizione per aiutare gli altri utenti a conoscere lo scopo di questo set di criteri.

  5. In Costruzione guidata criteri, utilizzare l'editor manuale per aggiungere le seguenti istruzioni:
    allow group <group-name> to use cloud-shell in tenancy
    allow group <group-name> to inspect all-resources in tenancy
    allow group <group-name> to read instances in tenancy
    allow group <group-name> to read audit-events in tenancy
    allow group <group-name> to manage dis-workspaces in compartment <compartment-name>
    allow group <group-name> to manage dis-work-requests in compartment <compartment-name>
    allow group <group-name> to manage virtual-network-family in compartment <compartment-name>
    allow group <group-name> to manage tag-namespaces in compartment <compartment-name>
    allow service dataintegration to use virtual-network-family in compartment <compartment-name>
    allow group <group-name> to manage object-family in compartment <compartment-name>
    allow group <group-name> to manage functions-family in compartment <compartment-name>
    allow group <group-name> to manage api-gateway-family in compartment <compartment-name>
    allow group <group-name> to inspect instance-family in compartment <compartment-name>
    allow group <group-name> to manage autonomous-database-family in compartment <compartment-name>
    allow group <group-name> to use analytics-instances in compartment <compartment-name>
    allow group <group-name> to manage repos in tenancy
    allow group <group-name> to read objectstorage-namespaces in tenancy
    allow group <group-name> to manage logging-family in compartment <compartment-name>
    allow group <group-name> to read metrics in compartment <compartment-name>
    allow group <group-name> to use apm-domains in compartment <compartment-name>
    allow service faas to use apm-domains in compartment <compartment-name>
    allow group <group-name> to use ai-service-vision-family in compartment <compartment-name>
  6. Selezionare Crea.

1. Creare una rete cloud virtuale

Creare una VCN da utilizzare come home per la funzione serverless e il gateway API creato in seguito nell'esercitazione.

1.1 Creazione di una VCN con accesso a Internet

Attenersi alla procedura riportata di seguito per creare una VCN con accesso a Internet.

  1. Nel menu di navigazione selezionare Networking.
  2. Seleziona reti cloud virtuali.
  3. Fare clic su Avvia procedura guidata VCN.
  4. Selezionare Crea VCN con connettività Internet.
  5. Selezionare Avvia procedura guidata VCN.
  6. Immettere un nome per la VCN. Evitare di inserire informazioni riservate.
  7. Selezionare Successivo.
  8. Selezionare Crea.

1.2 Accesso alla VCN da Internet

Per consentire il traffico sulla porta 443, è necessario aggiungere una nuova regola di entrata con conservazione dello stato per la subnet regionale pubblica.

Prima di provare a eseguire questo task, completare la 1.1 Creazione di una VCN con accesso a Internet.

Il gateway API comunica sulla porta 443, che non è aperta per impostazione predefinita.

  1. Nel menu di navigazione selezionare Networking.
  2. Seleziona reti cloud virtuali.
  3. Selezionare la VCN creata nella 1.1 Creazione di una VCN con accesso a Internet.
  4. Selezionare il nome della subnet regionale pubblica.
  5. In Elenchi di sicurezza selezionare Default Security List.
  6. Selezionare Aggiungi regole di entrata.
  7. Aggiornare i campi seguenti con i seguenti valori:
    • Tipo di origine: CIDR
    • CIDR di origine: 0.0.0.0/0
    • Protocollo IP: TCP
    • Intervallo porte di origine: All
    • Intervallo di porte di destinazione: 443
  8. Selezionare Aggiungi regole di entrata per aggiungere la nuova regola alla lista di sicurezza predefinita.

2. Creazione di un gateway API

Un gateway API consente di aggregare tutte le funzioni create in un unico endpoint che può essere utilizzato dagli utenti.

Completare 1. Creare una rete cloud virtuale prima di provare a eseguire questo task.

  1. Dal menu di navigazione della console, selezionare Servizi sviluppatore.
  2. Seleziona gateway.
  3. Selezionare Crea gateway.
  4. Immettere un nome per il gateway. Non inserire informazioni riservate.
  5. Impostare il tipo del gateway su Public.
  6. Selezionare il compartimento in cui creare le risorse del gateway API.
  7. Selezionare il nome della VCN da utilizzare con il gateway API. Utilizzare il nome della VCN creata nella sezione 1. Creare una rete cloud virtuale.
  8. Selezionare il nome della subnet regionale nella VCN. Impostarla sulla subnet pubblica modificata.
  9. Selezionare Crea gateway.

    Quando viene creato, il gateway API viene visualizzato come Active nella lista della pagina Gateway.

3. Crea una funzione di integrazione

Attenersi alla procedura riportata di seguito per creare una funzione di arricchimento che può essere richiamata da Oracle Cloud Infrastructure Data Integration.

Crea una funzione serverless che viene eseguita solo su richiesta. La funzione è conforme allo schema richiesto per essere utilizzato da Data Integration. La funzione serverless chiama l'API di Vision tramite Python SDK.

3.1 Creazione di un'applicazione

Per aggiungere una funzione, prima è necessario creare un'applicazione.

Completare 2. Creazione di un gateway API prima di provare a eseguire questo task.

  1. Nel menu di navigazione della console selezionare Servizi sviluppatore.
  2. Selezionare Applicazioni.
  3. Selezionare Crea applicazione.

    È possibile pensare a un'applicazione come a un contesto limitato in cui possono risiedere diverse funzioni.

  4. Immettere un nome. Non inserire informazioni riservate.
  5. Selezionare la VCN creata nella sezione 1. Creare una rete cloud virtuale.
  6. Selezionare la subnet pubblica della VCN
  7. Selezionare Crea.
  8. Quando l'applicazione viene creata, aprirla e fare clic su Guida introduttiva.

    In modo che possa distribuire le funzioni nel compartimento e nel registro container corretti, impostare l'interfaccia CLI.

  9. Selezionare Impostazione Cloud Shell.
  10. Selezionare Avvia Cloud Shell.
    Questo avvia una macchina virtuale Linux con tutte le configurazioni per impostare le funzioni.
  11. Effettuare le operazioni descritte dal punto 1 al 7 in Setup fn CLI su Cloud Shell oppure consultare il video Create Serverless Functions on Oracle Cloud.
    Nota

    Se il passo 4 non è chiaro, vedere Creazione di un contesto CLI di progetto Fn per connettersi a Oracle Cloud Infrastructure nella documentazione relativa alle funzioni. È possibile selezionare qualsiasi termine per OCIR-REPO, ovvero un prefisso utilizzato come nome del registro contenitore per distribuire la funzione.

3.2 Creazione di una funzione

Per creare una funzione nell'applicazione, procedere come segue.

Completare la 3.1 Creazione di un'applicazione prima di provare a eseguire questo task.

Il modo più veloce è far sì che il sistema generi un modello Python.

  1. Eseguire il comando seguente nella cloud shell:
    fn init --runtime python object-detection
    cd object-detection
    Genera tre file:
    • func.yaml
    • requirements.txt
    • func.py
  2. Modificare ciascuno dei tre file con il seguente contenuto:
Func.yaml

Contenuto consigliato per func.yaml.

schema_version: 20180708
name: object-detection
version: 0.0.1
runtime: python
build_image: fnproject/python:3.8-dev
run_image: fnproject/python:3.8
entrypoint: /python/bin/fdk /function/func.py handler
memory: 256
timeout: 300
Requirements.txt

Contenuto consigliato per requirements.txt.

fdk>=0.1.40
oci
https://objectstorage.us-ashburn-1.oraclecloud.com/n/axhheqi2ofpb/b/vision-oac/o/vision_service_python_client-0.3.9-py2.py3-none-any.whl
pandas
requests
Func.py

Contenuto consigliato per func.py.

import io
import json
import logging
import pandas
import requests
import base64
from io import StringIO
from fdk import response
 
import oci
from vision_service_python_client.ai_service_vision_client import AIServiceVisionClient
from vision_service_python_client.models.analyze_image_details import AnalyzeImageDetails
from vision_service_python_client.models.image_object_detection_feature import ImageObjectDetectionFeature
from vision_service_python_client.models.inline_image_details import InlineImageDetails
 
def handler(ctx, data: io.BytesIO=None):
    signer = oci.auth.signers.get_resource_principals_signer()
    resp = do(signer,data)
    return response.Response(
        ctx, response_data=resp,
        headers={"Content-Type": "application/json"}
    )
 
def vision(dip, txt):
    encoded_string = base64.b64encode(requests.get(txt).content)
 
    image_object_detection_feature = ImageObjectDetectionFeature()
    image_object_detection_feature.max_results = 5
    features = [image_object_detection_feature]
    analyze_image_details = AnalyzeImageDetails()
    inline_image_details = InlineImageDetails()
    inline_image_details.data = encoded_string.decode('utf-8')
    analyze_image_details.image = inline_image_details
    analyze_image_details.features = features
    try:
        le = dip.analyze_image(analyze_image_details=analyze_image_details)
    except Exception as e:
        print(e)
        return ""
    if le.data.image_objects is not None:
      return json.loads(le.data.image_objects.__repr__())
    return ""
 
 
def do(signer, data):
    dip = AIServiceVisionClient(config={}, signer=signer)
 
    body = json.loads(data.getvalue())
    input_parameters = body.get("parameters")
    col = input_parameters.get("column")
    input_data = base64.b64decode(body.get("data")).decode()
    df = pandas.read_json(StringIO(input_data), lines=True)
    df['enr'] = df.apply(lambda row : vision(dip,row[col]), axis = 1)
    #Explode the array of aspects into row per entity
    dfe = df.explode('enr',True)
    #Add a column for each property we want to return from imageObjects struct
    ret=pandas.concat([dfe,pandas.DataFrame((d for idx, d in dfe['enr'].iteritems()))], axis=1)
 
 
    #Drop array of aspects column
    ret = ret.drop(['enr'],axis=1)
    #Drop the input text column we don't need to return that (there may be other columns there)
    ret = ret.drop([col],axis=1)
    if 'name' not in ret.columns:
        return pandas.DataFrame(columns=['id','name','confidence','x0','y0','x1','y1','x2','y2','x3','y3']).to_json(orient='records')
    for i in range(4):
        ret['x' + str(i)] = ret.apply(lambda row: row['bounding_polygon']['normalized_vertices'][i]['x'], axis=1)
        ret['y' + str(i)] = ret.apply(lambda row: row['bounding_polygon']['normalized_vertices'][i]['y'], axis=1)
    ret = ret.drop(['bounding_polygon'],axis=1)
 
    rstr=ret.to_json(orient='records')
    return rstr

3.3 Distribuzione della funzione

Distribuire la funzione nell'applicazione

Completare la 3.2 Creazione di una funzione prima di provare a eseguire questo task.

  1. Eseguire il comando cloud shell seguente:
    fn -v deploy app <app_name>
  2. Verificare che la funzione sia registrata nel registro container.
    1. Dal menu di navigazione della console, selezionare Servizi sviluppatore.
    2. Selezionare Container Registry. La funzione è visibile nel registro contenitore.

3.4 Richiamo della funzione

Prova la funzione chiamandola.

Completare la 3.3 Distribuzione della funzione prima di provare a eseguire questo task.

Oracle Cloud Infrastructure Data Integration supporta le funzioni di chiamata, in cui il payload dei dati è una stringa con codifica base 64 singola che contiene i record da elaborare e un set di parametri. Ad esempio:
{"data":"eyJpZCI6MSwiaW5wdXRUZXh0IjoiaHR0cHM6Ly9pbWFnZS5jbmJjZm0uY29tL2FwaS92MS9pbWFnZS8xMDYxOTYxNzktMTU3MTc2MjczNzc5MnJ0czJycmRlLmpwZyJ9", "parameters":{"column":"inputText"}}
I dati codificati sono la versione con codifica 64 di base di un set di formati JSON Lines (ogni riga è un JSON per ogni record). Ogni record ha un ID utilizzato per associare l'output. La decodifica della stringa di esempio restituisce:
{"id":1,"inputText":"https://<server-name>/api/v1/image/106196179-1571762737792rts2rrde.jpg"}
Eseguire il test della funzione con il comando seguente:
echo '{"data":"<data-payload>", "parameters":{"column":"inputText"}}' | fn invoke <application-name> object-detection
L'output è simile a:
[{"id":1,"confidence":0.98330873,"name":"Traffic Light","x0":0.0115499255,"y0":0.4916201117,"x1":0.1609538003,"y1":0.4916201117,"x2":0.1609538003,"y2":0.9927374302,"x3":0.0115499255,"y3":0.9927374302},{"id":1,"confidence":0.96953976,"name":"Traffic Light","x0":0.8684798808,"y0":0.1452513966,"x1":1.0,"y1":0.1452513966,"x2":1.0,"y2":0.694972067,"x3":0.8684798808,"y3":0.694972067},{"id":1,"confidence":0.90388376,"name":"Traffic sign","x0":0.4862146051,"y0":0.4122905028,"x1":0.8815201192,"y1":0.4122905028,"x2":0.8815201192,"y2":0.7731843575,"x3":0.4862146051,"y3":0.7731843575},{"id":1,"confidence":0.8278353,"name":"Traffic sign","x0":0.2436661699,"y0":0.5206703911,"x1":0.4225037258,"y1":0.5206703911,"x2":0.4225037258,"y2":0.9184357542,"x3":0.2436661699,"y3":0.9184357542},{"id":1,"confidence":0.73488903,"name":"Window","x0":0.8431445604,"y0":0.730726257,"x1":0.9992548435,"y1":0.730726257,"x2":0.9992548435,"y2":0.9893854749,"x3":0.8431445604,"y3":0.9893854749}]

4. Aggiunta di un criterio funzioni

Creare un criterio in modo che la funzione possa essere utilizzata con Vision.

Completare 3. Creare una funzione di integrazione prima di provare a eseguire questo task.

  1. Dal menu di navigazione della console, selezionare Identità e sicurezza.
  2. Selezionare Gruppi dinamici.
  3. Creare un gruppo dinamico con la regola seguente:
    ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment-id>'}
  4. Aggiungere le seguenti istruzioni al criterio:
    allow any-user to use functions-family in compartment <compartment-name> where ALL {request.principal.type= 'ApiGateway', request.resource.compartment.id = '<compartment-id>'}
    allow dynamic-group <dynamic-group-name> to use ai-service-vision-family in tenancy

5. Creazione di un'area di lavoro Oracle Cloud Infrastructure Data Integration

Prima di poter utilizzare Data Integration, assicurarsi di disporre dei diritti di utilizzo della funzionalità.

Completare 4. Aggiunta di un criterio delle funzioni prima di eseguire questo task.

Creare i criteri che consentono di utilizzare Data Integration.

  1. Dal menu di navigazione della console, selezionare Analytics & AI.
  2. Selezionare Integrazione dati.
  3. Selezionare il compartimento per l'area di lavoro.
  4. Selezionare Crea area di lavoro.
  5. Dare all'area di lavoro un nome. Evitare di inserire informazioni riservate.
  6. Assicurarsi che l'opzione Abilita rete privata sia selezionata.
  7. Selezionare una VCN nel compartimento.
  8. Assicurarsi che la subnet selezionata sia la subnet privata.
  9. Selezionare Crea.
    La creazione dell'area di lavoro richiede alcuni minuti.
  10. Quando l'area di lavoro viene creata, confermarne lo stato Active.

6. Aggiunta di criteri di integrazione dei dati

Aggiornare il criterio in modo da poter utilizzare Data Integration.

Completare 5. Creazione di un'area di lavoro di Oracle Cloud Infrastructure Data Integration prima di provare a eseguire questo task.

  1. Attenersi alla procedura descritta in Impostazione dei criteri necessari per aprire Policy Builder.
  2. Aggiungere le seguenti istruzioni al criterio:
    allow any-user to read buckets in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<data-integration-workspace-ocid>', request.operation = 'GetBucket'}
    allow any-user to manage objects in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<data-integration-workspace-ocid>'}
    allow any-user to manage buckets in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<data-integration-workspace-ocid>', request.permission = 'PAR_MANAGE'}
    allow any-user {PAR_MANAGE} in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.principal.id='<data-integration-workspace-ocid>'}
    allow any-user to use functions-family in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id='<data-integration-workspace-ocid>'}

7. Preparare le origini dati e i lavandini

Si stanno utilizzando le immagini di parcheggio auto insieme alla data in cui le immagini sono state acquisite come dati di esempio.

Raccogliere 10 immagini (o più) di auto parcheggiate come origine dati su cui eseguire l'analisi di rilevamento degli oggetti utilizzando Data Integration e Vision.

7.1 Caricamento dei dati di esempio

Caricare i dati di esempio delle immagini dell'auto parcheggiata nel bucket.

Completare 6. Aggiunta di criteri di integrazione dati prima di provare a eseguire questo task.

  1. Trova 10 immagini di auto parcheggiate, sia localmente che online.
  2. Nel menu di navigazione della console selezionare Memorizzazione.
  3. Selezionare Bucket.
  4. Selezionare un bucket esistente o creare un nuovo bucket.
  5. Nella pagina Dettagli bucket, in Oggetti, selezionare Carica.
  6. Trascinare nella zona di rilascio i 10 file di immagine raccolti nel passaggio 1.
  7. Selezionare Carica.
  8. Creare un file CSV con una tabella di quattro colonne e 10 righe. I nomi delle colonne sono ID record, Nome immagine, Data scelta e Posizione immagine. Compilare la colonna ID record da 1 a 10.
    File dati di esempio Tabella di quattro colonne e dieci righe. I nomi delle colonne sono ID record, Nome immagine, Data scelta e Posizione immagine.
  9. Assegnare un nome al file cars.csv.
  10. Compilare la tabella fornendo i nomi delle immagini, la data di acquisizione e la posizione dell'immagine.
    È possibile trovare la posizione dell'immagine selezionando il menu Azioni (tre punti) per l'immagine nella console durante la visualizzazione del bucket. Selezionare Visualizza dettagli oggetto e copiare il percorso URL in cars.csv.
  11. Caricare cars.csv nel bucket.
  12. Selezionare Chiudi.

7.2 Creazione di un bucket temporaneo

In Data Integration è necessaria una posizione di staging in cui eseguire il dump dei file intermedi prima di pubblicare i dati in un data warehouse.

Completare 7.1 Caricamento dei dati di esempio prima di provare a eseguire questo task.

  1. Nel menu di navigazione della console selezionare Memorizzazione.
  2. Selezionare Bucket.
  3. Selezionare Crea bucket.
  4. Darle un nome appropriato, ad esempio data-staging. Evitare di inserire informazioni riservate.
  5. Selezionare Crea.
  6. Accettare tutti i valori predefiniti.

7.3 Preparazione del database di destinazione

Configurare il database Autonomous Data Warehouse di destinazione per aggiungere uno schema e una tabella.

Completare la 7.2 Creazione di un bucket di staging prima di provare a eseguire questo task.

  1. Nel menu di navigazione della console selezionare Oracle Database.
  2. Selezionare Autonomous Data Warehouse.
  3. Selezionare il compartimento.
  4. Selezionare Crea Autonomous Database.
  5. Immettere un nome visualizzato. Evitare di inserire informazioni riservate.
  6. immettere un nome in Nome database. Evitare di inserire informazioni riservate.
  7. Impostare Tipo di carico di lavoro su Data warehouse.
  8. Creare il nome utente e la password per l'amministratore del database.
  9. Impostare Tipo di accesso su Secure access from anywhere.
  10. Impostare Autenticazione su mTLS.
  11. Impostare Tipo di licenza su BYOL.
  12. Selezionare Crea Autonomous Database.
  13. Una volta eseguito il provisioning del database, nella pagina Dettagli database selezionare Azioni database.
  14. Eseguire il login con le credenziali fornite nel passo 8.
  15. Selezionare Sviluppo.
  16. Selezionare SQL.
  17. Creare un utente Contributor eseguendo il seguente codice SQL:
    CREATE USER USER1 IDENTIFIED BY "<enter user1 password here>";
    GRANT DWROLE TO USER1;
    ALTER USER USER1 QUOTA 200M ON DATA;

    Gli Autonomous Database sono dotati di un ruolo di database predefinito denominato DWROLE. Fornisce i privilegi comuni a uno sviluppatore di database o a un data scientist per eseguire analisi in tempo reale. A seconda dei requisiti di utilizzo, potrebbe essere necessario concedere privilegi anche ad altri utenti.

7.4 Creazione di una tabella per proiettare i dati analizzati

Creare una tabella per memorizzare qualsiasi informazione sugli oggetti rilevati.

Prima di eseguire questo task, completare 7.3 Preparazione del database di destinazione.

  1. Se non ci si trova già, passare al dashboard Azioni database.
  2. Eseguire lo script
    CREATE TABLE USER1.OBJECTS
       ("RECORD_ID" INT,
        "IMAGE_NAME" VARCHAR2(200 BYTE),
        "DATE_TAKEN" DATE,
        "IMAGE_LOCATION" VARCHAR2(2000 BYTE),
        "OBJECT_NAME" VARCHAR2(200 BYTE),
        "OBJECT_CONFIDENCE" DECIMAL(8,7),
        "VERTEX_X1" FLOAT,
        "VERTEX_Y1" FLOAT,
        "VERTEX_X2" FLOAT,
        "VERTEX_Y2" FLOAT,
        "VERTEX_X3" FLOAT,
        "VERTEX_Y3" FLOAT,
        "VERTEX_X4" FLOAT,
        "VERTEX_Y4" FLOAT
    ) SEGMENT CREATION IMMEDIATE
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
     NOCOMPRESS LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
      BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "VISION"

8. Uso di un flusso di dati in integrazione dei dati

Creare i componenti necessari per creare un flusso di dati in Data Integration.

Il flusso di dati è: Il flusso inizia con il file cars.csv, un'espressione e una funzione di rilevamento degli oggetti funzionano su di esso e l'output viene inviato allo storage degli oggetti di destinazione.

Tutte le risorse di storage di base sono state create nei capitoli precedenti. In Data Integration è possibile creare gli asset dati per ciascuno degli elementi del flusso di dati.

8.1 Creazione di un asset dati per l'origine e l'area intermedia

Creare un asset dati per i dati di origine e area intermedia.

Completare 7. Preparare le origini dati e i lavandini prima di provare a eseguire questo task.

  1. Dal menu di navigazione della console, selezionare Analytics & AI.
  2. Selezionare Integrazione dati.
  3. Nella home page dell'area di lavoro creata in 5. Creazione di un'area di lavoro di Oracle Cloud Infrastructure Data Integration, selezionare Crea asset dati nella casella Azioni rapide.
  4. Nella pagina Crea asset dati, compilare i campi riportati di seguito.
    1. Per Nome, immettere cars-data-source.
    2. In Descrizione, immettere un testo che consenta all'utente o ad altri utenti di trovare l'asset dati.
    3. Selezionare Oracle Object Storage come Tipo.
    4. Immettere l'OCID tenant. Se è necessario trovare le informazioni sulla tenancy, sono disponibili se si seleziona l'icona Profilo della console.
    5. Specificare l'area OCI.
  5. Selezionare Test connessione.
  6. Selezionare Crea.
  7. (Facoltativo) Se la posizione del bucket di staging è diversa, ripetere i passi da 3 a 6 per creare un asset dati per l'area intermedia.
    Nota

    Il nome dell'ubicazione temporanea deve essere maiuscolo.

8.2 Creazione di un asset dati per la destinazione

Creare un asset dati per il data warehouse di destinazione.

Prima di provare a eseguire questo task, completare la 8.1 Creazione di un asset dati per l'origine e l'area intermedia.

  1. Dal menu di navigazione della console, selezionare Analytics & AI.
  2. Selezionare Integrazione dati.
  3. Nella home page dell'area di lavoro creata in 5. Creazione di un'area di lavoro di Oracle Cloud Infrastructure Data Integration, selezionare Crea asset dati nella casella Azioni rapide.
  4. Nella pagina Crea asset dati, compilare i campi riportati di seguito.
    1. In Nome, immettere data-warehouse.
    2. Sebbene il identificativo venga generato automaticamente dal nome, è possibile modificare il valore.
    3. In Descrizione, immettere un testo che consenta all'utente o ad altri utenti di trovare l'asset dati.
    4. Selezionare Oracle Autonomous Data Warehouse come tipo.
    5. Selezionare Seleziona database.
    6. Immettere l'OCID tenant. Se è necessario trovare le informazioni sulla tenancy, sono disponibili se si seleziona l'icona Profilo della console.
    7. Selezionare il compartimento.
    8. Selezionare l'ADW creato in 7.3 Preparazione del database di destinazione.
    9. Specificare il livello TNS. Impostare su qualsiasi valore appropriato.
    10. Selezionare il nome servizio per connettersi a ADW.
  5. Nella sezione Connessione aggiungere le informazioni riportate di seguito.
    1. In Nome, selezionare il valore predefinito, anche se è possibile rinominarlo.
    2. In Descrizione, immettere un testo che consenta all'utente o ad altri utenti di trovare l'asset dati.
    3. Impostare Nome utente su USER1.
    4. Immettere la password dell'utente.
  6. Selezionare Test connessione per verificare le credenziali immesse.
  7. Se il passo 6 ha esito positivo, selezionare Crea.

8.3 Creazione di un flusso di dati

Creare un flusso di dati in Data Integration per includere i dati dal file.

Prima di provare a eseguire questo task, completare la 8.2 Creazione di un asset dati per la destinazione.

  1. Nella pagina dei dettagli del progetto Vision Lab, selezionare Flussi di dati.
  2. Selezionare Crea flusso dati.
  3. Nel designer del flusso di dati, selezionare il pannello Proprietà.
  4. In Nome, immettere lab-data-flow.
  5. Selezionare Crea.

8.4 Aggiunta di un'origine dati

A questo punto, aggiungere un'origine dati al flusso di dati.

Completare la 8.3 Creazione di un flusso di dati prima di eseguire questo task.

Dopo aver creato il flusso di dati in 8.3 Creazione di un flusso di dati, il designer rimane aperto ed è possibile aggiungervi un'origine dati mediante i passi riportati di seguito.

  1. Trascinare l'icona di origine nell'area di lavoro del flusso dati.
  2. Selezionare l'origine.
  3. In Proprietà, selezionare la scheda Dettagli.
  4. Aggiornare le proprietà come indicato di seguito.
    1. In Identificativo, immettere CARS_CSV.
    2. In Dettagli, selezionare l'asset dati di origine creato in 8.1 Creazione di un asset dati per l'origine e il posizionamento nell'area intermedia.
    3. Impostare Connessione sull'impostazione predefinita.
    4. In Schema, selezionare il bucket che contiene il file di dati cars.csv.
    5. In Entità dati, selezionare il file di dati cars.csv.
    6. Impostare Tipo di file su CSV.
  5. Andare a Dati. I dati vengono visualizzati dopo uno o due minuti.

8.5 Aggiunta di un'espressione

Aggiungere un'espressione per modificare il formato di ID in numero intero e il formato del campo date_taken in una data.

Completare la 8.4 Aggiunta di un'origine dati prima di eseguire questo task.

  1. Fare clic con il pulsante destro del mouse sull'icona del menu azioni per il campo <data source name>.id.
  2. Selezionare Modifica tipo di dati.
  3. Immettere ID.
  4. In Tipo di dati, selezionare integer.
  5. Selezionare Applica.
    Viene creato un nuovo passo dell'espressione nel flusso di dati Yout.
  6. Fare clic con il pulsante destro del mouse sull'icona del menu azioni per il campo <data source name>.date_taken.
  7. Selezionare Modifica tipo di dati.
  8. In Tipo di dati selezionare Date.
  9. Assicurarsi che la formattazione della data corrisponda a quanto contenuto nel file CSV (yyyy-MM-dd).
  10. Impostare Nome su DATE_TAKEN.
  11. Selezionare la scheda Dati per l'espressione per visualizzare i nuovi campi.
    Campi dati I quattro campi dati per l'espressione con celle popolate.

8.6 Aggiunta di una funzione

Aggiungere una funzione al flusso di dati per estrarre oggetti dalle immagini di input.

Completare 8.5 Aggiunta di un'espressione prima di provare a eseguire questo task.

  1. Nella barra degli strumenti degli operatori trascinare l'operatore Funzione (fn) sull'area di creazione.
  2. Collegare l'output dell'espressione come input alla funzione.
  3. Selezionare la funzione.
  4. Nel riquadro Proprietà, passare a Dettagli.
  5. Modificare l'identificativo in OBJECT_DETECTION.
  6. Selezionare Seleziona per selezionare una funzione.
  7. Selezionare l'applicazione creata nella 3.1 Creazione di un'applicazione.
  8. Selezionare la funzione object-detection.
  9. Selezionare OK per confermare le modifiche.
  10. Aggiungere o modificare le proprietà. Selezionare Aggiungi proprietà per aggiungere una proprietà. Utilizzare i valori riportati di seguito.
    Attributi funzione
    Nome Digita Tipo di dati Length Scale Value
    dati Attributo input VARCHAR 2.000
    colonna Configurazione funzioni VARCHAR dati
    BATCH_SIZE Configurazione funzioni NUMERIC/VARCHAR (impostazione predefinita) 1
    nome Attributo di output VARCHAR 200
    fiducia Attributo di output DECIMAL 8 7
    x0 Attributo di output FLOAT 64
    y0 Attributo di output FLOAT 64
    x1 Attributo di output FLOAT 64
    y1 Attributo di output FLOAT 64
    x2 Attributo di output FLOAT 64
    y2 Attributo di output FLOAT 64
    x3 Attributo di output FLOAT 64
    y3 Attributo di output FLOAT 64

8.7 Mapping dell'output alla tabella Data Warehouse

Mappare l'output dell'analisi delle opinioni alla tabella Data Warehouse.

Prima di eseguire questo task, completare 8.6 Aggiunta di una funzione.

  1. Passare alla scheda Mappa.
  2. Trascinare image_location nella tabella degli attributi di origine nell'input della funzione di campo dati.
  3. Nella barra degli strumenti dell'operatore trascinare l'operatore Destinazione nell'area di creazione.
  4. Collegare l'output della funzione di rilevamento degli oggetti all'input dell'operatore di destinazione.
  5. Nella scheda delle proprietà dei dettagli per la destinazione, impostare i seguenti campi sui valori specificati:
    Identificativo
    TARGET_OBJECT_DETECTION
    Strategia di integrazione
    Inserire
    Asset dati
    Selezionare l'asset data warehouse creato in 8.2 Creazione di un asset dati per la destinazione.
    Connessione
    Connessione predefinita
    Schema
    USER1
    Entità dati
    OGGETTI
    Posizione intermedia
    Fornire una posizione di storage degli oggetti in cui è possibile creare i file intermedi durante l'esecuzione del flusso di dati:
    Asset dati
    auto-data source
    Connessione
    Connessione predefinita
    In schema
    Selezionare la posizione di storage degli oggetti data-staging
  6. Eseguire il mapping dell'output della funzione ai campi corretti nella tabella del database di destinazione. Utilizzare i mapping nella tabella riportata di seguito.
    Mapping output funzione
    Nome Mapping
    RECORD_ID RECORD_ID
    IMAGE_NAME Image_Name
    DATE_TAKEN DATE_TAKEN
    IMAGE_LOCATION Image_Location
    OBJECT_NAME nome
    OBJECT_CONFIDENCE fiducia
    VERTICE X1 x0
    VERTICE Y1 y0
    VERTICE X2 x1
    VERTICE Y2 y1
    VERTICE X3 x2
    VERTICE Y3 y2
    VERTICE X4 x3
    VERTICE Y4 y3
    I mapping devono avere il seguente aspetto:

    Mapping da uno a quattro I primi quattro mapping visualizzati nell'applicazione

    Mapping da cinque a otto I secondi quattro mapping visualizzati nell'applicazione

    Mapping da nove a dodici I tre quattro mapping visualizzati nell'applicazione

    Mapping tredici e quattordici Gli ultimi due mapping visualizzati nell'applicazione

8.8 Esecuzione del flusso di dati

Eseguire il flusso di dati per popolare il database di destinazione.

Prima di eseguire questo task, completare la 8.7 Mapping dell'output alla tabella Data Warehouse.

  1. Nel menu Azioni rapido dell'area di lavoro (tre punti), selezionare Crea task di integrazione.

    Nell'ambito del processo di creazione, selezionare il progetto e il flusso di dati creati in 8.3 Creazione di un flusso di dati.

  2. Nell'area di lavoro selezionare Applicazioni.
  3. Selezionare Crea applicazione.
  4. Immettere un nome.
  5. Selezionare Crea.
  6. Nell'area di lavoro selezionare Progetti.
  7. Selezionare il progetto creato nella 8.3 Creazione di un flusso di dati.
  8. Nel menu Dettagli, selezionare Task.
  9. Per il task creato nel passo 1, selezionare Esegui dal menu dell'icona di azione.
  10. Selezionare Pubblica in applicazione.
  11. Selezionare l'applicazione creata nel passo 3.
  12. Nell'applicazione, selezionare il task di integrazione.
  13. Selezionare Esegui dal menu dell'icona di azione.
    È possibile seguire l'avanzamento dell'esecuzione dalla pagina Esegui. Se si verificano errori, controllare i log per comprendere meglio il motivo.
  14. Al termine dell'esecuzione, cercare nel database se le tabelle sono popolate correttamente. Eseguire l'istruzione SQL seguente:
    SELECT * FROM USER1.OBJECTS;

9. Visualizzare i dati in Analytics Cloud

Visualizzare i dati creati mediante Analytics Cloud.

È necessario accedere ad Analytics Cloud e creare un'istanza di Analytics Cloud.

9.1 Creazione di un'istanza di Analytics Cloud

Attenersi alla procedura riportata di seguito per creare un'istanza di Analytics Cloud.

Completare 8. Prima di eseguire questo task, utilizzare un flusso dati in Data Integration.

  1. Dal menu di navigazione della console, selezionare Analytics & AI.
  2. Selezionare Analytics Cloud.
  3. Selezionare il compartimento,
  4. Selezionare Crea istanza.
  5. Immettere un nome. Non inserire informazioni riservate
  6. Selezionare 2 OCPUs. Come valori predefiniti vengono mantenuti gli altri parametri di configurazione.
  7. Selezionare Crea.

9.2 Creazione di una connessione al data warehouse

Attenersi alla procedura riportata di seguito per impostare una connessione dall'istanza di Analytics Cloud al data warehouse.

Prima di provare a eseguire questo task, completare la 9.1 Creazione di un'istanza di Analytics Cloud.

  1. Nella pagina dei dettagli, fare clic su Home page di Analytics. Collegarsi all'istanza di Analytics Cloud.
  2. Selezionare Crea data set.
  3. Selezionare Crea connessione.
  4. Selezionare Oracle Autonomous Data Warehouse.
  5. Immettere le credenziali di login per il database di destinazione creato in 7.3 Preparazione del database di destinazione.
    Se non si ricorda come ottenere il wallet, vedere come scaricare un wallet per ulteriori informazioni.

9.3 Creazione di un data set

Per creare un set di dati, procedere come segue.

Prima di provare a eseguire questo task, completare la 9.2 Creazione di una connessione al data warehouse.

  1. Selezionare Dati.
  2. Selezionare Crea.
  3. Selezionare Crea un nuovo data set.
  4. Selezionare il data warehouse.
  5. Dal database USER1 trascinare la tabella OBJECTS nell'area di creazione.
  6. Salvare il data set.

9.4 Creazione di una visualizzazione

Per visualizzare i dati in Analytics Cloud, attenersi alla procedura riportata di seguito.

Completare 9.3 Creazione di un data set prima di provare a eseguire questo task.

  1. Selezionare Crea.
  2. Selezionare Cartella di lavoro.
  3. Selezionare il data set creato nella 9.3 Creazione di un data set.
  4. Selezionare Aggiungi a cartella di lavoro.
  5. Selezionare la scheda Visualizzazioni.
  6. Trascinare una visualizzazione a barre sullo sfondo.
  7. Andare ai dati.
  8. Fare clic con il pulsante destro del mouse sulla tabella Calcoli personali.
  9. Selezionare Aggiungi calcolo.
  10. Impostare Nome su COUNT OF OBJECTS.
  11. Immettere COUNT(OBJECT_NAME) in Funzione.
  12. Trascinare COUNT OF SENTIMENT sul valore (asse Y) della visualizzazione.
  13. Selezionare OBJECTS > DATE_TAKEN per la categoria (asse X) della visualizzazione.
  14. Selezionare DATE_TAKEN.
  15. Selezionare Mostra by...Day.
  16. Per Colore, selezionare OBJECT_NAME.
    Viene visualizzato un grafico simile al seguente: Grafico a barre che mostra il numero di auto e ruote rilevate per ogni giorno.