Befehl CREATE EXTERNAL DATASOURCE

Sie können den Befehl CREATE EXTERNAL DATASOURCE verwenden, um externe Datenquellen zu erstellen.

Externe Datenquellen werden verwendet, um Verbindungen von Netezza Performance Server zu entfernten Speicherorten wie AWS S3, Azure Blob/ADLSv2, IBM Cloud Object Storage, Minio und anderen kompatiblen Quellen herzustellen. Sie sind ein Zwischenschritt bei der Erstellung externer Tabellen und dienen der Speicherung von Verbindungsdetails, einschließlich Remote-Standort und Anmeldeinformationen. Siehe Befehl CREATE EXTERNAL TABLE für weitere Einzelheiten.

Externe Datenquellen werden verwendet, um die Verbindung zwischen Speicherkonten herzustellen, und unterstützen die erste Verwendung von Datenvirtualisierung und Datenladen.

Um eine externe Datenquelle zu erstellen, müssen Sie ENABLE_EXTERNAL_DATASOURCE auf 1 setzen.
SET ENABLE_EXTERNAL_DATASOURCE = 1;

Syntax

Um eine Datenquelle zu erstellen, führen Sie aus:
CREATE EXTERNAL DATASOURCE external data source name
ON source
USING (
   external data source options
);
Wählen Sie eine der folgenden source aus:
  • AWSS3 - unterstützt alle S3-compatible Speicher, einschließlich IBM Cloud Object Storage und Minio.
  • AZUREBLOB - unterstützt Blob und ADLSv2.
Hinweis: Um AZUREBLOB mit externen Parquet-Tabellen zu verwenden, aktivieren Sie es, indem Sie den folgenden Befehl ausführen.
SET ENABLE_AZURE_DATALAKE_SUPPORT TRUE;
Um eine externe Datenquelle zu erstellen, führen Sie den folgenden Befehl aus:
CREATE EXTERNAL DATASOURCE DATASOURCE
ON AWSS3 
USING (
   ACCESSKEYID ACCESSKEYID 
   SECRETACCESSKEY SECRETACCESSKEY 
   BUCKET BUCKET 
   REGION REGION
);
Tipp:
  1. Nachdem Sie eine externe Datenquellendefinition erstellt haben, können Sie ALTER Anweisungen verwenden, um die Spalten der externen Datenquelle zu ändern, oder SHOW Anweisungen, um die Spaltenwerte der externen Datenquelle anzuzeigen.
  2. Sie können die Option verbose mit dem Befehl SHOW verwenden. Wenn Sie den Befehl ausführen, werden die Spaltenwerte kombiniert, um die Cloud-Verbindungszeichenfolge für diese externe Datenquelle zu bilden.
    SHOW EXTERNAL DATASOURCE NYCTAXIS3 VERBOSE;
    CONN      | REMOTESOURCE 
    ------------------------
    ACCESSKEYID=ACCESS KEY ID:BUCKETURL=URL:DEFAULTREGION=REGION:SECRETACCESSKEY=SECRET ACCESS KEY | S3
    (1 row)

Optionen für externe Datenquellen

Für S3-compatible Quellen AWS S3 )
Option Gültige Formate Datentyp Verteilung Beschreibung
region Text Zeichenfolge Obligatorisch Standort des Eimers
bucket Text Zeichenfolge Obligatorisch Bucket-Name
accesskeyid Text Zeichenfolge Optionale IBM COS-Schlüssel
secretaccesskey Text Zeichenfolge Optionale IBM COS geheimer Zugangsschlüssel
multipartsizemb Text, Fest Zeichenfolge Optionale Mehrteilige Größe; 8 MB - 5 GB
endpoint Text Zeichenfolge Optionale Verbindung zu S3-compatible Endpunkt
Hinweis: Wenn einer der folgenden Parameter angegeben wird, stellen Sie sicher, dass auch der andere Parameter angegeben wird.
  • accesskeyid
  • secretaccesskey
Der Endpunkt kann verwendet werden, um eine Verbindung zu einem anderen S3-compatible Remote-Speicherort als AWS S3 herzustellen.
Für Azure Blob/ADLSv2 (AZUREBLOB)
Option Gültige Formate Datentyp Verteilung Beschreibung
account Text Zeichenfolge Obligatorisch Name des Speicherkontos
container Text Zeichenfolge Obligatorisch Name des Lagerbehälters
blobtype Text Zeichenfolge Optionale Eine der Optionen BLOCK, PAGE, obligatorisch für andere Zwecke als externe Tabellen im Parkett
key Text Zeichenfolge Optionale Zugangsschlüssel zum Konto
sastoken Text Zeichenfolge Optionale Azure SAS-Token
tenantid Text Zeichenfolge Optionale Azure
clientid Text Zeichenfolge Optionale Azure
clientsecret Text Zeichenfolge Optionale Azure
Hinweis: Die folgenden Authentifizierungsmethoden werden für externe Parketttabellen unterstützt:
  • Zugriffsschlüssel für das Speicherkonto (Schlüssel ).
  • SAS-Token (sastoken ).
  • Azure Entra ID OAuth (tenantid, clientes, clientsecret ).

Auch der anonyme Zugriff wird unterstützt.

Beispiele

Siehe Beispiele für externe Datenquellen.