Vision mit Oracle Analytics Cloud (OAC) integrieren

Erstellen Sie einen Datenintegrationsfluss, der mit dem Vision SDK Objekte in Images erkennt und diese Informationen in einer Tabelle in einem Data Warehouse projiziert. Diese Ausgabedaten werden dann von Oracle Analytics Cloud verwendet, um Visualisierungen zu erstellen und Muster zu finden.

Dies ist der allgemeine Ablauf des Systems zwischen Vision und OAC: Der Ablauf zwischen Vision und OAC, beginnend mit dem Eingabedatenasset als CSV-Datei in Data Integration. Diese Daten werden verarbeitet und als Ausgabedaten an eine ADW-Objekttabelle übergeben, die dann als Quelle für OAC verwendet wird.

Bevor Sie beginnen

Um dieses Tutorial zu befolgen, müssen Sie in der Lage sein, VCN-Netzwerke, -Funktionen und API-Gateways zu erstellen und Data Integration and Vision zu verwenden.

Sprechen Sie mit Ihrem Administrator über die erforderlichen Richtlinien.

Erforderliche Policys einrichten

Führen Sie die folgenden Schritte aus, um die erforderlichen Policys einzurichten.

  1. Wählen Sie im Navigationsmenü der Konsole die Option Identität und Sicherheit aus.
  2. Wählen Sie unter Identität die Option Policys aus.
  3. Wählen Sie Policy erstellen aus.
  4. Geben Sie im Bereich Policy erstellen den Namen und die Beschreibung ein.
    Geben Sie unter Name einen Namen ohne Leerzeichen ein. Sie dürfen nur alphanumerische Zeichen, Bindestriche, Punkte und Unterstriche verwenden.

    Geben Sie unter Beschreibung eine Beschreibung ein, damit andere Benutzer den Zweck dieser Policys kennen.

  5. Verwenden Sie in Policy Builder den manuellen Editor, um die folgenden Anweisungen hinzuzufügen:
    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. Klicken Sie auf Erstellen.

1. Virtuelles Cloud-Netzwerk erstellen

Erstellen Sie ein VCN, das als Home für die serverlose Funktion und das später im Tutorial erstellte API-Gateway dient.

1.1 VCN mit Internetzugriff erstellen

Führen Sie diese Schritte aus, um ein VCN mit Internetzugriff zu erstellen.

  1. Wählen Sie im Navigationsmenü Networking aus.
  2. Wählen Sie Virtuelle Cloud-Netzwerke aus.
  3. Klicken Sie auf VCN-Assistenten starten.
  4. Wählen Sie VCN mit Internetverbindung erstellen aus.
  5. Wählen Sie VCN-Assistenten starten aus.
  6. Geben Sie einen Namen für das VCN ein. Geben Sie dabei keine vertraulichen Informationen ein.
  7. Wählen Sie Weiter aus.
  8. Klicken Sie auf Erstellen.

1.2 Über das Internet auf Ihr VCN zugreifen

Sie müssen eine neue zustandslose Ingress-Regel für das öffentliche regionale Subnetz hinzufügen, um Traffic auf Port 443 zu ermöglichen.

Führen Sie 1.1 VCN mit Internetzugriff erstellen aus, bevor Sie diese Aufgabe ausführen.

Das API Gateway kommuniziert auf Port 443, der standardmäßig nicht geöffnet ist.

  1. Wählen Sie im Navigationsmenü Networking aus.
  2. Wählen Sie Virtuelle Cloud-Netzwerke aus.
  3. Wählen Sie das VCN aus, das Sie in 1.1 VCN mit Internetzugriff erstellen erstellt haben.
  4. Wählen Sie den Namen des öffentlichen regionalen Subnetzes aus.
  5. Wählen Sie unter Sicherheitslisten die Option Default Security List aus.
  6. Wählen Sie Ingress-Regeln hinzufügen aus.
  7. Aktualisieren Sie die folgenden Felder mit diesen Werten:
    • Quelltyp: CIDR
    • Quell-CIDR: 0.0.0.0/0
    • IP-Protokoll: TCP
    • Quellportbereich: All
    • Zielportbereich: 443
  8. Wählen Sie Ingress-Regeln hinzufügen aus, um die neue Regel zur Standardsicherheitsliste hinzuzufügen.

2. API-Gateway erstellen

Mit einem API-Gateway können Sie alle von Ihnen erstellten Funktionen zu einem einzigen Endpunkt aggregieren, der von Ihren Benutzern genutzt werden kann.

Füllen Sie 1 aus. Erstellen Sie ein virtuelles Cloud-Netzwerk, bevor Sie diese Aufgabe ausführen.

  1. Wählen Sie im Navigationsmenü der Konsole die Option Entwicklerservices.
  2. Gateways auswählen.
  3. Wählen Sie Gateway erstellen aus.
  4. Geben Sie einen Namen für das Gateway ein. Geben Sie keine vertraulichen Informationen ein.
  5. Setzen Sie den Typ des Gateways auf Public.
  6. Wählen Sie das Compartment aus, in dem die API-Gateway-Ressourcen erstellt werden sollen.
  7. Wählen Sie den Namen des VCN aus, das mit dem API-Gateway verwendet werden soll. Verwenden Sie den Namen des VCN, das Sie in Abschnitt 1 erstellt haben. Virtuelles Cloud-Netzwerk erstellen.
  8. Wählen Sie den Namen des regionalen Subnetzes im VCN aus. Setzen Sie es auf das von Ihnen geänderte öffentliche Subnetz.
  9. Wählen Sie Gateway erstellen aus.

    Wenn das API-Gateway erstellt wird, wird es in der Liste auf der Seite "Gateways" als Active angezeigt.

3. Anreicherungsfunktion erstellen

Führen Sie diese Schritte aus, um eine Anreicherungsfunktion zu erstellen, die nicht über Oracle Cloud Infrastructure Data Integration aufgerufen werden kann.

Erstellen Sie eine serverlose Funktion, die nur auf Anforderung ausgeführt wird. Die Funktion entspricht dem Schema, das für die Nutzung durch Data Integration erforderlich ist. Die serverlose Funktion ruft die API von Vision über das Python-SDK auf.

3.1 Anwendung erstellen

Um eine Funktion hinzuzufügen, müssen Sie zunächst eine Anwendung erstellen.

Füllen Sie 2 aus. API Gateway erstellen, bevor Sie diese Aufgabe ausführen.

  1. Wählen Sie in der Konsole im Navigationsmenü die Option Entwicklerservices.
  2. Wählen Sie Anwendungen aus.
  3. Klicken Sie auf Anwendung erstellen.

    Sie können sich eine Anwendung als gebundenen Kontext vorstellen, in dem sich mehrere Funktionen befinden können.

  4. Geben Sie einen Namen ein. Geben Sie keine vertraulichen Informationen ein.
  5. Wählen Sie das VCN aus, das in Abschnitt 1 erstellt wurde. Virtuelles Cloud-Netzwerk erstellen.
  6. Wählen Sie das öffentliche Subnetz des VCN aus
  7. Klicken Sie auf Erstellen.
  8. Wenn die Anwendung erstellt wird, öffnen Sie sie, und klicken Sie auf Erste Schritte.

    Damit Funktionen im richtigen Compartment und in der Container-Registry bereitgestellt werden können, richten Sie die CLI ein.

  9. Wählen Sie Cloud Shell-Setup aus.
  10. Wählen Sie Cloud Shell starten aus.
    Dadurch wird eine virtuelle Linux-Maschine mit allen Konfigurationen zum Einrichten von Funktionen gestartet.
  11. Befolgen Sie die Schritte 1 bis 7 unter Fn-CLI einrichten in Cloud Shell, oder lesen Sie das Video Serverlose Funktionen in Oracle Cloud erstellen.
    Hinweis

    Wenn Schritt 4 nicht eindeutig ist, finden Sie weitere Informationen unter Fn-Projekt-CLI-Kontext für die Verbindung mit Oracle Cloud Infrastructure erstellen in der Functions-Dokumentation. Sie können einen beliebigen Begriff für OCIR-REPO auswählen. Dabei handelt es sich um ein Präfix, das als Name der Container-Registry zum Deployment der Funktion verwendet wird.

3.2 Funktion erstellen

So erstellen Sie eine Funktion in Ihrer Anwendung:

Schließen Sie 3.1 Anwendung erstellen ab, bevor Sie diese Aufgabe ausführen.

Der schnellste Weg ist, dass das System eine Python-Vorlage generiert.

  1. Führen Sie den folgenden Befehl in der cloud shell aus:
    fn init --runtime python object-detection
    cd object-detection
    Es werden drei Dateien generiert:
    • func.yaml
    • requirements.txt
    • func.py
  2. Ändern Sie jede der drei Dateien mit dem folgenden Inhalt:
Func.yaml

Empfohlener Inhalt für 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

Empfohlener Inhalt für 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

Empfohlener Inhalt für 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 Funktion bereitstellen

Funktion für die Anwendung bereitstellen

Schließen Sie 3.2 Funktion erstellen ab, bevor Sie diese Aufgabe ausführen.

  1. Führen Sie den folgenden cloud shell-Befehl aus:
    fn -v deploy app <app_name>
  2. Vergewissern Sie sich, dass die Funktion in der Containerregistrierung registriert ist.
    1. Wählen Sie im Navigationsmenü der Konsole die Option Entwicklerservices.
    2. Wählen Sie Container Registry aus. Die Funktion ist in der Container-Registry sichtbar.

3.4 Aufrufen der Funktion

Testen Sie die Funktion, indem Sie sie aufrufen.

Schließen Sie 3.3 Funktion bereitstellen ab, bevor Sie diese Aufgabe ausführen.

Oracle Cloud Infrastructure Data Integration unterstützt aufrufende Funktionen, bei denen die Daten-Payload eine einzelne codierte Base 64-Zeichenfolge ist, die die zu verarbeitenden Datensätze und eine Gruppe von Parametern enthält. Beispiele:
{"data":"eyJpZCI6MSwiaW5wdXRUZXh0IjoiaHR0cHM6Ly9pbWFnZS5jbmJjZm0uY29tL2FwaS92MS9pbWFnZS8xMDYxOTYxNzktMTU3MTc2MjczNzc5MnJ0czJycmRlLmpwZyJ9", "parameters":{"column":"inputText"}}
Die codierten Daten sind die Basis-64-codierte Version eines JSON-Linienformats (jede Zeile ist eine JSON für jeden Datensatz). Jeder Record verfügt über eine Kennung, mit der die Ausgabe verknüpft wird. Die Decodierung der Beispielzeichenfolge ergibt:
{"id":1,"inputText":"https://<server-name>/api/v1/image/106196179-1571762737792rts2rrde.jpg"}
Testen Sie die Funktion mit dem folgenden Befehl:
echo '{"data":"<data-payload>", "parameters":{"column":"inputText"}}' | fn invoke <application-name> object-detection
Die Ausgabe ähnelt:
[{"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. Funktions-Policy hinzufügen

Erstellen Sie eine Policy, damit die Funktion mit Vision verwendet werden kann.

Füllen Sie 3 aus. Erstellen Sie eine Anreicherungsfunktion, bevor Sie diese Aufgabe ausführen.

  1. Wählen Sie im Navigationsmenü der Konsole die Option Identität und Sicherheit aus.
  2. Wählen Sie Dynamische Gruppen aus.
  3. Erstellen Sie eine dynamische Gruppe mit der folgenden Regel:
    ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment-id>'}
  4. Fügen Sie der Policy die folgenden Anweisungen hinzu:
    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. Oracle Cloud Infrastructure Data Integration-Workspace erstellen

Bevor Sie Data Integration verwenden können, stellen Sie sicher, dass Sie über die Rechte zur Verwendung dieser Funktion verfügen.

Füllen Sie 4 aus. Fügen Sie eine Functions-Policy hinzu, bevor Sie diese Aufgabe ausführen.

Erstellen Sie die Policys, mit denen Sie Data Integration verwenden können.

  1. Wählen Sie im Navigationsmenü der Konsole die Option Analysen und KI aus.
  2. Wählen Sie Data Integration aus.
  3. Wählen Sie das Compartment für Ihren Workspace aus.
  4. Wählen Sie Workspace erstellen aus.
  5. Geben Sie dem Workspace einen Namen. Geben Sie dabei keine vertraulichen Informationen ein.
  6. Stellen Sie sicher, dass Privates Netzwerk aktivieren ausgewählt ist.
  7. Wählen Sie ein VCN im Compartment aus.
  8. Stellen Sie sicher, dass das ausgewählte Subnetz Ihr privates Subnetz ist.
  9. Klicken Sie auf Erstellen.
    Die Erstellung des Workspace dauert einige Minuten.
  10. Wenn der Workspace erstellt wird, bestätigen Sie, dass er den Status Active aufweist.

6. Data Integration-Policys hinzufügen

Aktualisieren Sie Ihre Policy, damit Sie Data Integration verwenden können.

Füllen Sie 5 aus. Erstellen Sie einen Oracle Cloud Infrastructure Data Integration-Workspace, bevor Sie diese Aufgabe ausführen.

  1. Führen Sie die Schritte unter Erforderliche Policys einrichten aus, um Policy Builder zu öffnen.
  2. Fügen Sie der Policy die folgenden Anweisungen hinzu:
    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. Datenquellen und Sinks vorbereiten

Sie verwenden Parkplatzbilder zusammen mit dem Datum, an dem die Bilder als Beispieldaten aufgenommen wurden.

Erfassen Sie 10 Bilder (oder mehr) von geparkten Autos als Datenquelle, auf der Sie eine Objekterkennungsanalyse mit Data Integration und Vision durchführen.

7.1 Laden von Beispieldaten

Laden Sie die Beispieldaten der geparkten Fahrzeugbilder in Ihren Bucket.

Füllen Sie 6 aus. Data Integration-Policys hinzufügen, bevor Sie diese Aufgabe ausführen.

  1. Finden Sie 10 Bilder von geparkten Autos, entweder lokal oder online.
  2. Wählen Sie im Navigationsmenü der Konsole die Option Speicher aus.
  3. Wählen Sie Buckets aus.
  4. Wählen Sie einen vorhandenen Bucket, oder erstellen Sie einen neuen.
  5. Wählen Sie auf der Seite mit den Buckets-Details unter Objekte die Option Hochladen aus.
  6. Ziehen Sie die 10 Bilddateien, die Sie in Schritt 1 erfasst haben, in die Drop-Zone.
  7. Wählen Sie Hochladen.
  8. Erstellen Sie eine CSV-Datei mit einer Tabelle mit vier Spalten und 10 Zeilen. Die Spaltennamen sind Record ID, Image Name, Date Taken und Image Location. Füllen Sie die Spalte "Datensatz-ID" von 1 bis 10 aus.
    Musterdatendatei Tabelle mit vier Spalten und zehn Zeilen. Die Spaltennamen sind Record ID, Image Name, Date Taken und Image Location.
  9. Geben Sie der Datei den Namen cars.csv.
  10. Füllen Sie die Tabelle aus, indem Sie die Bildnamen, das aufgenommene Datum und die Bildposition angeben.
    Sie finden den Speicherort des Images, indem Sie das Aktionsmenü Menü "Aktionen" für das Image in der Konsole auswählen, wenn Sie den Bucket anzeigen. Wählen Sie "View Object Details", und kopieren Sie den URL-Pfad nach cars.csv.
  11. Laden Sie cars.csv in den Bucket hoch.
  12. Wählen Sie Schließen.

7.2 Staging-Buckets erstellen

Data Integration benötigt eine Staging Area, in der Zwischendateien ausgegeben werden, bevor Daten in einem Data Warehouse veröffentlicht werden.

Führen Sie 7.1 Laden von Beispieldaten aus, bevor Sie diese Aufgabe ausführen.

  1. Wählen Sie im Navigationsmenü der Konsole die Option Speicher aus.
  2. Wählen Sie Buckets aus.
  3. Wählen Sie Bucket erstellen aus.
  4. Geben Sie ihm einen geeigneten Namen, z.B. data-staging. Geben Sie dabei keine vertraulichen Informationen ein.
  5. Klicken Sie auf Erstellen.
  6. Übernehmen Sie alle Standardwerte.

7.3 Zieldatenbank vorbereiten

Konfigurieren Sie die Autonomous Data Warehouse-Zieldatenbank, um ein Schema und eine Tabelle hinzuzufügen.

Schließen Sie 7.2 Staging Bucket erstellen ab, bevor Sie diese Aufgabe ausführen.

  1. Wählen Sie im Navigationsmenü der Konsole die Option Oracle Database aus.
  2. Wählen Sie Autonomous Data Warehouse aus.
  3. Wählen Sie das Compartment aus.
  4. Wählen Sie Autonomous Database erstellen aus.
  5. Geben Sie einen Anzeigenamen ein. Geben Sie dabei keine vertraulichen Informationen ein.
  6. Geben Sie einen Namen in Datenbankname ein. Geben Sie dabei keine vertraulichen Informationen ein.
  7. Setzen Sie Workload-Typ auf Data warehouse.
  8. Erstellen Sie den Benutzernamen und das Kennwort für den Adminsitrator der Datenbank.
  9. Setzen Sie den Zugriffstyp auf Secure access from anywhere.
  10. Setzen Sie Authentifizierung auf mTLS.
  11. Setzen Sie den Lizenztyp auf BYOL.
  12. Wählen Sie Autonomous Database erstellen aus.
  13. Wenn die Datenbank bereitgestellt wurde, wählen Sie auf der Seite "Datenbankdetails" die Option Datenbankaktionen aus.
  14. Melden Sie sich mit den Zugangsdaten an, die Sie in Schritt 8 angegeben haben.
  15. Wählen Sie Development aus.
  16. Wählen Sie SQL aus.
  17. Erstellen Sie einen Contributor-Benutzer, indem Sie die folgende SQL-Anweisung ausführen:
    CREATE USER USER1 IDENTIFIED BY "<enter user1 password here>";
    GRANT DWROLE TO USER1;
    ALTER USER USER1 QUOTA 200M ON DATA;

    Autonome Datenbanken verfügen über eine vordefinierte Datenbankrolle namens DWROLE. Es bietet einem Datenbankentwickler oder Data Scientist die allgemeinen Berechtigungen zur Durchführung von Echtzeitanalysen. Je nach den Nutzungsanforderungen müssen Sie möglicherweise auch anderen Benutzern Berechtigungen erteilen.

7.4 Erstellen einer Tabelle zur Projektierung der analysierten Daten

Erstellen Sie eine Tabelle, in der alle Informationen zu den erkannten Objekten gespeichert werden.

Führen Sie 7.3 Zieldatenbank vorbereiten aus, bevor Sie diese Aufgabe ausführen.

  1. Navigieren Sie zum Dashboard Datenbankaktionen, wenn Sie noch nicht dort sind.
  2. Führen Sie das folgende Skript aus:
    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. Datenfluss in Data Integration verwenden

Erstellen Sie die Komponenten, die zum Erstellen eines Datenflusses in Data Integration erforderlich sind.

Der Datenfluss lautet: Der Ablauf beginnt mit der Datei cars.csv, eine Ausdrucks- und Objekterkennungsfunktion arbeitet daran und die Ausgabe wird an den Zielobjektspeicher gesendet.

Alle zugrunde liegenden Speicherressourcen wurden in früheren Kapiteln erstellt. In Data Integration erstellen Sie die Datenassets für jedes der Elemente des Datenflusses.

8.1 Erstellen eines Datenassets für Ihre Quelle und das Staging

Erstellen Sie ein Datenasset für Ihre Quell- und Staging-Daten.

Füllen Sie 7 aus. Bereiten Sie die Datenquellen und Sinks vor, bevor Sie diese Aufgabe ausführen.

  1. Wählen Sie im Navigationsmenü der Konsole die Option Analysen und KI aus.
  2. Wählen Sie Data Integration aus.
  3. Auf der Homepage des Workspace, den Sie in 5 erstellt haben. Wenn Sie einen Oracle Cloud Infrastructure Data Integration-Workspace erstellen, wählen Sie in der Kachel Schnellaktionen die Option Datenasset erstellen aus.
  4. Füllen Sie auf der Seite Datenasset erstellen die folgenden Felder aus:
    1. Geben Sie als Name cars-data-source ein.
    2. Geben Sie unter Beschreibung Text ein, mit dem Sie oder andere Benutzer das Datenasset finden können.
    3. Wählen Sie Oracle Object Storage als Typ aus.
    4. Geben Sie die Mandanten-OCID ein. Wenn Sie die Mandanteninformationen suchen müssen, ist sie verfügbar, wenn Sie das Symbol Profil der Konsole auswählen.
    5. Geben Sie die OCI-Region an.
  5. Wählen Sie Verbindung testen aus.
  6. Klicken Sie auf Erstellen.
  7. (Optional) Wenn sich der Speicherort des Staging Buckets unterscheidet, wiederholen Sie die Schritte 3 bis 6, um ein Datenasset für das Staging zu erstellen.
    Hinweis

    Der Name der Staging Area muss groß geschrieben werden.

8.2 Datenasset für das Ziel erstellen

Erstellen Sie ein Datenasset für das Ziel-Data Warehouse.

Führen Sie 8.1 Datenasset für Quelle und Staging erstellen aus, bevor Sie diese Aufgabe ausführen.

  1. Wählen Sie im Navigationsmenü der Konsole die Option Analysen und KI aus.
  2. Wählen Sie Data Integration aus.
  3. Auf der Homepage des Workspace, den Sie in 5 erstellt haben. Wenn Sie einen Oracle Cloud Infrastructure Data Integration-Workspace erstellen, wählen Sie in der Kachel Schnellaktionen die Option Datenasset erstellen aus.
  4. Füllen Sie auf der Seite Datenasset erstellen die folgenden Felder aus:
    1. Geben Sie unter Name data-warehouse ein.
    2. Obwohl die ID automatisch aus dem Namen generiert wird, können Sie den Wert ändern.
    3. Geben Sie unter Beschreibung Text ein, mit dem Sie oder andere Benutzer das Datenasset finden können.
    4. Wählen Sie Oracle Autonomous Data Warehouse als Typ aus.
    5. Wählen Sie Datenbank auswählen aus.
    6. Geben Sie die Mandanten-OCID ein. Wenn Sie die Mandanteninformationen suchen müssen, ist sie verfügbar, wenn Sie das Symbol Profil der Konsole auswählen.
    7. Compartment auswählen.
    8. Wählen Sie den ADW aus, den Sie unter 7.3 Zieldatenbank vorbereiten erstellt haben.
    9. Geben Sie die TNS-Ebene an. Setzen Sie es auf den gewünschten Wert.
    10. Wählen Sie den Servicenamen aus, um eine Verbindung zu Ihrem ADW herzustellen.
  5. Fügen Sie im Abschnitt Verbindung die folgenden Informationen hinzu:
    1. Wählen Sie unter Name den Standardwert aus, Sie können ihn jedoch umbenennen.
    2. Geben Sie unter Beschreibung Text ein, mit dem Sie oder andere Benutzer das Datenasset finden können.
    3. Setzen Sie Benutzername auf USER1.
    4. Geben Sie das Kennwort für den Benutzer ein.
  6. Wählen Sie Verbindung testen aus, um die eingegebenen Zugangsdaten zu prüfen.
  7. Wenn Schritt 6 erfolgreich ist, wählen Sie Erstellen aus.

8.3 Datenflüsse erstellen

Erstellen Sie einen Datenfluss in Data Integration, um die Daten aus der Datei zu erfassen.

Führen Sie 8.2 Datenasset für das Ziel erstellen aus, bevor Sie diese Aufgabe ausführen.

  1. Wählen Sie auf der Seite "Vision-Lab-Projektdetails" die Option Datenflüsse aus.
  2. Wählen Sie Datenfluss erstellen aus.
  3. Wählen Sie im Datenflussdesigner den Bereich Eigenschaften aus.
  4. Geben Sie unter Name lab-data-flow ein.
  5. Klicken Sie auf Erstellen.

8.4 Datenquelle hinzufügen

Fügen Sie nun dem Datenfluss eine Datenquelle hinzu.

Führen Sie 8.3 Datenfluss erstellen aus, bevor Sie diese Aufgabe ausführen.

Nachdem Sie den Datenfluss in 8.3 Datenfluss erstellen erstellt haben, bleibt der Designer geöffnet, und Sie können ihm mit den folgenden Schritten eine Datenquelle hinzufügen:

  1. Ziehen Sie das Quellsymbol in den Arbeitsbereich des Datenflusses.
  2. Quelle auswählen.
  3. Wählen Sie unter Eigenschaften die Registerkarte Details aus.
  4. Aktualisieren Sie die Eigenschaften wie folgt:
    1. Geben Sie unter ID CARS_CSV ein.
    2. Wählen Sie unter Details das Quelldatenasset aus, das Sie unter 8.1 Datenasset für die Quelle und das Staging erstellen erstellt haben.
    3. Setzen Sie Verbindung auf den Standardwert.
    4. Wählen Sie unter Schema den Bucket aus, der die Datendatei cars.csv enthält.
    5. Wählen Sie unter Datenentity die Datendatei cars.csv aus.
    6. Setzen Sie Datentyp auf CSV.
  5. Navigieren Sie zu Daten. Die Daten werden dort nach ein oder zwei Minuten angezeigt.

8.5 Ausdruck hinzufügen

Fügen Sie einen Ausdruck hinzu, um das Format von ID in Ganzzahl und das Format des Feldes date_taken in ein Datum zu ändern.

Schließen Sie 8.4 Datenquellen hinzufügen ab, bevor Sie diese Aufgabe ausführen.

  1. Klicken Sie mit der rechten Maustaste auf das Aktionsmenüsymbol für das Feld <data source name>.id.
  2. Wählen Sie Datentyp ändern aus.
  3. Geben Sie ID ein.
  4. Wählen Sie unter Datentyp die Option integer aus.
  5. Wählen Sie Anwenden aus.
    Im Datenfluss wird ein neuer Ausdrucksschritt erstellt.
  6. Klicken Sie mit der rechten Maustaste auf das Aktionsmenüsymbol für das Feld <data source name>.date_taken.
  7. Wählen Sie Datentyp ändern aus.
  8. Wählen Sie unter Datentyp die Option Date aus.
  9. Stellen Sie sicher, dass die Datumsformatierung mit der CSV-Datei (yyyy-MM-dd) übereinstimmt.
  10. Setzen Sie Name auf DATE_TAKEN.
  11. Wählen Sie die Registerkarte Daten für den Ausdruck aus, um die neuen Felder anzuzeigen.
    Datenfelder Die vier Datenfelder für den Ausdruck mit aufgefüllten Zellen.

8.6 Funktionen hinzufügen

Fügen Sie dem Datenfluss eine Funktion hinzu, um Objekte aus den Eingabebildern zu extrahieren.

Schließen Sie 8.5 Einen Ausdruck hinzufügen ab, bevor Sie diese Aufgabe ausführen.

  1. Ziehen Sie den Operator Funktion (fn) aus der Operatorsymbolleiste auf die Leinwand.
  2. Verbinden Sie die Ausgabe Ihres Ausdrucks als Eingabe mit der Funktion.
  3. Funktion auswählen.
  4. Navigieren Sie im Bereich Eigenschaften zu Details.
  5. Ändern Sie die ID in OBJECT_DETECTION.
  6. Wählen Sie Auswählen aus, um eine Funktion auszuwählen.
  7. Wählen Sie die Anwendung aus, die Sie unter 3.1 Anwendung erstellen erstellt haben.
  8. Wählen Sie die Funktion Objekterkennung.
  9. Wählen Sie OK, um die Änderungen zu bestätigen.
  10. Fügen Sie die Eigenschaften hinzu, oder bearbeiten Sie sie. Wählen Sie Eigenschaft hinzufügen aus, um eine Eigenschaft hinzuzufügen. Verwenden Sie die folgenden Werte:
    Funktionsattribute
    Name Typ Datentyp Länge Skalieren Value
    Daten Eingabeattribut VARCHAR 2.000
    Spalte Funktionskonfiguration VARCHAR Daten
    BATCH_SIZE Funktionskonfiguration NUMERIC/VARCHAR (Standard) 1
    Name Ausgabeattribut VARCHAR 200
    Vertrauen Ausgabeattribut DECIMAL 8 7
    x0 Ausgabeattribut FLOAT 64
    y0 Ausgabeattribut FLOAT 64
    x1 Ausgabeattribut FLOAT 64
    y1 Ausgabeattribut FLOAT 64
    x2 Ausgabeattribut FLOAT 64
    y2 Ausgabeattribut FLOAT 64
    x3 Ausgabeattribut FLOAT 64
    y3 Ausgabeattribut FLOAT 64

8.7 Ausgabe der Data Warehouse-Tabelle zuordnen

Ordnen Sie die Ausgabe der Sentimentanalyse der Data Warehouse-Tabelle zu.

Schließen Sie 8.6 Funktion hinzufügen ab, bevor Sie diese Aufgabe ausführen.

  1. Navigieren Sie zur Registerkarte Zuordnen.
  2. Ziehen Sie image_location in die Tabelle mit den Quellattributen in die Eingabe der Feldfunktion data.
  3. Ziehen Sie den Operator Ziel aus der Symbolleiste des Operators in die Leinwand.
  4. Verbinden Sie die Ausgabe Ihrer Objekterkennungsfunktion mit dem Eingang des Zieloperators.
  5. Legen Sie auf der Registerkarte "Detailsigenschaften" für das Ziel die folgenden Felder auf die angegebenen Werte fest:
    Identifier
    TARGET_OBJECT_DETECTION
    Integrationsstrategie
    Einfügen
    Datenasset
    Wählen Sie das Data Warehouse-Asset aus, das Sie in 8.2 Datenasset für Ihr Ziel erstellen erstellt haben.
    Anmeldung
    Standardverbindung
    Schema
    USER1
    Datenentity
    OBJEKTE
    Staging Area
    Geben Sie einen Objektspeicherort an, an dem die Zwischendateien erstellt werden können, wenn der Datenfluss ausgeführt wird:
    Datenasset
    autodatenquelle
    Anmeldung
    Standardverbindung
    In Schema
    Wählen Sie den Objektspeicherort data-staging aus.
  6. Ordnen Sie die Ausgabe der Funktion den richtigen Feldern in der Zieldatenbanktabelle zu. Verwenden Sie die Zuordnungen in der folgenden Tabelle:
    Funktionsausgabezuordnung
    Name Zuordnung
    RECORD_ID RECORD_ID
    IMAGE_NAME Image_Name
    DATE_TAKEN DATE_TAKEN
    IMAGE_LOCATION Image_Location
    OBJECT_NAME Name
    OBJECT_CONFIDENCE Vertrauen
    SCHEITEL X1 x0
    SCHEITEL Y1 y0
    SCHEITEL X2 x1
    SCHEITEL Y2 y1
    SCHEITEL X3 x2
    SCHEITEL Y3 y2
    SCHEITEL X4 x3
    SCHEITEL Y4 y3
    Die Mappings sollten wie folgt aussehen:

    Zuordnungen eins bis vier Die ersten vier Mappings, die in der Anwendung angezeigt werden

    Mappings Fünf bis Acht Die zweiten vier Mappings, die in der Anwendung angezeigt werden

    Zuordnungen neun bis zwölf Die dritten vier Mappings, die in der Anwendung angezeigt werden

    Mappings Dreizehn und Vierzehn Die letzten beiden Mappings, die in der Anwendung angezeigt werden

8.8 Ausführen des Datenflusses

Führen Sie den Datenfluss aus, um die Zieldatenbank aufzufüllen.

Schließen Sie 8.7 Ausgabe der Data Warehouse-Tabelle zuordnen ab, bevor Sie diese Aufgabe ausführen.

  1. Wählen Sie im Workspace-Menü "Schnellaktionen" Menü "Aktionen" die Option Integrationsaufgabe erstellen aus.

    Wählen Sie im Rahmen des Erstellungsprozesses das Projekt und den Datenfluss aus, den Sie in 8.3 Datenfluss erstellen erstellt haben.

  2. Wählen Sie im Workspace Anwendungen aus.
  3. Klicken Sie auf Anwendung erstellen.
  4. Geben Sie einen Namen ein.
  5. Klicken Sie auf Erstellen.
  6. Wählen Sie im Workspace Projekte aus.
  7. Wählen Sie das Projekt aus, das Sie unter 8.3 Datenfluss erstellen erstellt haben.
  8. Wählen Sie im Menü Details die Option Aufgaben.
  9. Wählen Sie für die in Schritt 1 erstellte Aufgabe im Aktionsmenü die Option Ausführen aus.
  10. Wählen Sie In Anwendung veröffentlichen aus.
  11. Wählen Sie die Anwendung aus, die Sie in Schritt 3 erstellt haben.
  12. Wählen Sie in der Anwendung die Integrationsaufgabe aus.
  13. Wählen Sie im Aktionsmenü die Option Ausführen aus.
    Sie können den Fortschritt der Ausführung auf der Seite Ausführungen verfolgen. Wenn Fehler auftreten, prüfen Sie die Logs, um zu verstehen, warum.
  14. Nachdem die Ausführung erfolgreich abgeschlossen wurde, prüfen Sie in der Datenbank, ob die Tabellen korrekt aufgefüllt wurden. Führen Sie die folgende SQL aus:
    SELECT * FROM USER1.OBJECTS;

9. Daten in Analytics Cloud visualisieren

Zeigen Sie die Daten an, die Sie mit Analytics Cloud erstellt haben.

Sie benötigen Zugriff auf Analytics Cloud und zum Erstellen einer Analytics Cloud-Instanz.

9.1 Analytics Cloud-Instanz erstellen

Führen Sie diese Schritte aus, um eine Analytics Cloud-Instanz zu erstellen.

Füllen Sie 8 aus. Verwenden Sie einen Datenfluss in Data Integration, bevor Sie diese Aufgabe ausführen.

  1. Wählen Sie im Navigationsmenü der Konsole die Option Analysen und KI aus.
  2. Wählen Sie Analytics Cloud aus.
  3. Wählen Sie das Compartment aus,
  4. Wählen Sie Instanz erstellen aus.
  5. Geben Sie einen Namen ein. Geben Sie keine vertraulichen Informationen ein
  6. Wählen Sie 2 OCPUs aus. Die anderen Konfigurationsparameter werden als Standardwerte beibehalten.
  7. Klicken Sie auf Erstellen.

9.2 Verbindung zum Data Warehouse erstellen

Führen Sie diese Schritte aus, um eine Verbindung von Ihrer Analytics Cloud-Instanz zu Ihrem Data Warehouse einzurichten.

Führen Sie 9.1 Analytics Cloud-Instanz erstellen aus, bevor Sie diese Aufgabe ausführen.

  1. Klicken Sie auf der Detailseite auf Analytics-Homepage. Melden Sie sich bei Ihrer Analytics Cloud-Instanz an.
  2. Wählen Sie Dataset erstellen aus.
  3. Wählen Sie Verbindung erstellen aus.
  4. Wählen Sie Oracle Autonomous Data Warehouse aus.
  5. Geben Sie die Anmeldedaten für die Zieldatenbank ein, die Sie in 7.3 Zieldatenbank vorbereiten erstellt haben.
    Wenn Sie sich nicht erinnern können, wie Sie das Wallet abrufen, finden Sie weitere Informationen unter Wallet herunterladen.

9.3 Datasets erstellen

So erstellen Sie ein Dataset:

Schließen Sie 9.2 Verbindung zum Data Warehouse erstellen ab, bevor Sie diese Aufgabe ausführen.

  1. Wählen Sie Daten.
  2. Klicken Sie auf Erstellen.
  3. Wählen Sie Neues Dataset erstellen aus.
  4. Wählen Sie Ihr Data Warehouse aus.
  5. Ziehen Sie die OBJECTS-Tabelle aus der Datenbank USER1 auf die Leinwand.
  6. Speichern Sie Ihr Dataset.

9.4 Visualisierung erstellen

Führen Sie diese Schritte aus, um Ihre Daten in Analytics Cloud anzuzeigen.

Schließen Sie 9.3 Dataset erstellen ab, bevor Sie diese Aufgabe ausführen.

  1. Klicken Sie auf Erstellen.
  2. Wählen Sie Arbeitsmappe aus.
  3. Wählen Sie das Datenset aus, das Sie unter 9.3 Datenset erstellen erstellt haben.
  4. Wählen Sie Zu Arbeitsmappe hinzufügen aus.
  5. Wählen Sie die Registerkarte Visualisierungen aus.
  6. Ziehen Sie eine Balkenvisualisierung auf die Leinwand.
  7. Gehe zu den Daten.
  8. Klicken Sie mit der rechten Maustaste auf die Tabelle Meine Berechnungen.
  9. Wählen Sie Berechnung hinzufügen... aus.
  10. Setzen Sie Name auf COUNT OF OBJECTS.
  11. Geben Sie COUNT(OBJECT_NAME) in Funktion ein.
  12. Ziehen Sie COUNT OF SENTIMENT auf die Y-Achse der Visualisierung.
  13. Wählen Sie OBJECTS > DATE_TAKEN für die Kategorie (X-Achse) der Visualisierung.
  14. Wählen Sie DATE_TAKEN.
  15. Wählen Sie by...Day anzeigen aus.
  16. Wählen Sie unter Farbe die Option OBJECT_NAME aus.
    Es wird ein Diagramm wie folgt angezeigt: Balkendiagramm mit der Anzahl der für jeden Tag erfassten Autos und Räder.