Externe Schemas in Amazon Redshift Spectrum - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Externe Schemas in Amazon Redshift Spectrum

In diesem Thema wird beschrieben, wie externe Schemas mit Redshift Spectrum erstellt und verwendet werden. Externe Schemas sind Sammlungen von Tabellen, die Sie als Verweise für den Zugriff auf Daten außerhalb Ihres Amazon Redshift Redshift-Clusters verwenden. Diese Tabellen enthalten Metadaten zu den externen Daten, die Redshift Spectrum liest.

Alle externen Tabellen müssen in einem externen Schema erstellt werden, das Sie mit einer CREATE EXTERNAL SCHEMA-Anweisung erstellen.

Anmerkung

Einige Anwendungen verwenden die Begriffe Datenbank und Schema mit gleicher Bedeutung. In Amazon Redshift verwenden wir den Begriff Schema.

Ein externes Amazon-Redshift-Schema verweist auf eine externe Datenbank in einem externen Datenkatalog. Sie können die externe Datenbank in Amazon Redshift, in Amazon Athena, in oder in AWS Glue Data Catalogeinem Apache Hive-Metastore wie Amazon erstellen. EMR Wenn Sie eine externe Datenbank in Amazon Redshift erstellen, befindet sich diese im Athena-Datenkatalog. Zur Erstellung einer Datenbank in einem Hive-Metastore müssen Sie sie in Ihrer Hive-Anwendung erstellen.

Amazon Redshift benötigt in Ihrem Namen die Autorisierung zum Zugriff auf den Datenkatalog in Athena und die Datendateien in Amazon S3. Um diese Autorisierung zu erteilen, erstellen Sie zunächst eine AWS Identity and Access Management Rolle (). IAM Dann fügen Sie die Rolle Ihrem Cluster hinzu und geben den Amazon-Ressourcennamen (ARN) für die Rolle in der Amazon CREATE EXTERNAL SCHEMA Redshift-Erklärung an. Weitere Informationen zur -Autorisierung finden Sie unter IAMRichtlinien für Amazon Redshift Spectrum.

Anmerkung

Wenn Sie derzeit externe Redshift Spectrum-Tabellen im Athena-Datenkatalog haben, können Sie Ihren Athena-Datenkatalog in einen AWS Glue Datenkatalog migrieren. Um einen AWS Glue Datenkatalog mit Redshift Spectrum zu verwenden, müssen Sie möglicherweise Ihre IAM Richtlinien ändern. Weitere Informationen finden Sie unter Upgrade auf den AWS Glue Datenkatalog im Amazon Athena Athena-Benutzerhandbuch.

Um eine externe Datenbank gleichzeitig mit der Erstellung eines externen Schemas zu erstellen, geben Sie FROM DATA CATALOG an, und schließen Sie die CREATE EXTERNAL DATABASE-Klausel in Ihre CREATE EXTERNAL SCHEMA-Anweisung ein.

Das folgende Beispiel erstellt ein externes Schema mit der Bezeichnung spectrum_schema unter Verwendung der externen Datenbank spectrum_db.

create external schema spectrum_schema from data catalog database 'spectrum_db' iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole' create external database if not exists;

Wenn Sie Ihren Datenkatalog mit Athena verwalten, geben Sie den Athena-Datenbanknamen und die AWS -Region an, in der sich der Athena-Datenkatalog befindet.

Das folgende Beispiel erstellt ein externes Schema mit der Standarddatenbank sampledb im Athena-Datenkatalog.

create external schema athena_schema from data catalog database 'sampledb' iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole' region 'us-east-2';
Anmerkung

Der region Parameter bezieht sich auf die AWS Region, in der sich der Athena-Datenkatalog befindet, nicht auf den Speicherort der Datendateien in Amazon S3.

Wenn Sie Ihren Datenkatalog mit einem Hive-Metastore wie Amazon verwalten, müssen Ihre Sicherheitsgruppen so konfiguriert seinEMR, dass sie Datenverkehr zwischen den Clustern zulassen.

Geben Sie in der CREATE EXTERNAL SCHEMA Anweisung die Metastore FROM HIVE METASTORE - und Portnummer an und fügen Sie sie hinzuURI. Im folgenden Beispiel wird ein externes Schema mittels einer Hive-Metastore-Datenbank namens erstellt hive_db.

create external schema hive_schema from hive metastore database 'hive_db' uri '172.10.10.10' port 99 iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole'

Um externe Schemas für Ihren Cluster anzuzeigen, fragen Sie die SCHEMA Katalogtabelle PG_ EXTERNAL _ oder die Ansicht SVV _ _ EXTERNAL ab. SCHEMAS Im folgenden Beispiel wird SVV _ _ abgefragtSCHEMAS, wodurch EXTERNAL PG_ _ und EXTERNAL PG_ SCHEMA verknüpft werden. NAMESPACE

select * from svv_external_schemas

Für die vollständige Befehlssyntax und Beispiele vgl. CREATE EXTERNAL SCHEMA.

Arbeiten mit externen Katalogen in Amazon Redshift Spectrum

Die Metadaten für externe Amazon-Redshift-Spectrum-Datenbanken und externe Tabellen werden in einem externen Datenkatalog gespeichert. Standardmäßig werden Redshift-Spectrum-Metadaten in einem Athena-Datenkatalog gespeichert. Sie können Redshift-Spectrum-Datenbanken und -Tabellen in Ihrer Athena-Konsole anzeigen und verwalten.

Sie können auch externe Datenbanken und externe Tabellen mithilfe der Hive-Datendefinitionssprache (DDL) mithilfe von Athena oder einem Hive-Metastore wie Amazon erstellen und verwalten. EMR

Anmerkung

Wir empfehlen die Verwendung von Amazon Redshift zur Erstellung und Verwaltung Ihrer externen Redshift-Spectrum-Datenbanken und externer Tabellen.

Redshift Spectrum-Datenbanken in Athena anzeigen und AWS Glue

Sie können eine externe Datenbank erstellen, indem Sie die CREATE EXTERNAL DATABASE NOT EXISTS IF-Klausel in Ihre CREATE EXTERNAL SCHEMA Anweisung aufnehmen. In solchen Fällen werden die Metadaten der externen Datenbank in Ihrem Datenkatalog gespeichert. Die Metadaten für externe Tabellen, die Sie mit Qualifizierung durch das externe Schema erstellen, werden ebenfalls in Ihrem -Datenkatalog gespeichert.

Athena und AWS Glue pflegen einen Datenkatalog für jeden unterstützten AWS-Region. Um Tabellenmetadaten anzuzeigen, melden Sie sich bei Athena oder der AWS Glue Konsole an. Wählen Sie in Athena Data sources, your AWS Glue, und zeigen Sie dann die Details Ihrer Datenbank an. Wählen Sie in AWS GlueDatenbanken, Ihre externe Datenbank, und zeigen Sie dann die Details Ihrer Datenbank an.

Wenn Sie Ihre externen Tabellen mit Athena erstellen und verwalten, registrieren Sie die Datenbank mit CREATE EXTERNALSCHEMA. Beispielsweise registriert der folgende Befehl die Athena-Datenbank mit der Bezeichnung sampledb.

create external schema athena_sample from data catalog database 'sampledb' iam_role 'arn:aws:iam::123456789012:role/mySpectrumRole' region 'us-east-1';

Wenn Sie die TABLES Systemansicht SVV _ EXTERNAL _ abfragen, sehen Sie Tabellen in der sampledb Athena-Datenbank und auch Tabellen, die Sie in Amazon Redshift erstellt haben.

select * from svv_external_tables;
schemaname    | tablename        | location                                               
--------------+------------------+--------------------------------------------------------
athena_sample | elb_logs         | s3://athena-examples/elb/plaintext           
athena_sample | lineitem_1t_csv  | s3://myspectrum/tpch/1000/lineitem_csv                
athena_sample | lineitem_1t_part | s3://myspectrum/tpch/1000/lineitem_partition          
spectrum      | sales            | s3://redshift-downloads/tickit/spectrum/sales          
spectrum      | sales_part       | s3://redshift-downloads/tickit/spectrum/sales_part

Registrieren einer Apache Hive-Metastore-Datenbank

Wenn Sie externe Tabellen in einem Apache Hive-Metastore erstellen, können CREATE EXTERNAL SCHEMA Sie diese Tabellen in Redshift Spectrum registrieren.

Geben Sie in der CREATE EXTERNAL SCHEMA Anweisung die FROM HIVE METASTORE Klausel an und geben Sie den URI Hive-Metastore und die Portnummer an. Die IAM Rolle muss die Berechtigung für den Zugriff auf Amazon S3 beinhalten, benötigt jedoch keine Athena-Berechtigungen. Das folgende Beispiel registriert einen Hive-Metastore.

create external schema if not exists hive_schema from hive metastore database 'hive_database' uri 'ip-10-0-111-111.us-west-2.compute.internal' port 9083 iam_role 'arn:aws:iam::123456789012:role/mySpectrumRole';

Aktivieren Sie Ihren Amazon Redshift Redshift-Cluster für den Zugriff auf Ihren EMR Amazon-Cluster

Wenn sich Ihr Hive-Metastore in Amazon befindetEMR, müssen Sie Ihrem Amazon Redshift Redshift-Cluster Zugriff auf Ihren Amazon-Cluster gewähren. EMR Dazu erstellen Sie eine EC2 Amazon-Sicherheitsgruppe. Anschließend lassen Sie den gesamten eingehenden Datenverkehr von der EC2 Sicherheitsgruppe Ihres Amazon Redshift Redshift-Clusters und der Sicherheitsgruppe Ihres EMR Amazon-Clusters zur Sicherheitsgruppe zu. Dann fügen Sie die EC2 Sicherheit sowohl Ihrem Amazon Redshift Redshift-Cluster als auch Ihrem EMR Amazon-Cluster hinzu.

Aufrufen des Namens der Sicherheitsgruppe Ihres Amazon-Redshift-Clusters

Um die Sicherheitsgruppe anzuzeigen, gehen Sie wie folgt vor:

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon Redshift Redshift-Konsole unter https://console.aws.amazon.com/redshiftv2/.

  2. Wählen Sie im Navigationsmenü die Option Clusters (Cluster) und anschließend in der Liste den gewünschten Cluster aus, um die Details zu dem Cluster zu öffnen.

  3. Wählen Sie Properties (Eigenschaften) aus und sehen Sie sich den Abschnitt Network and security (Netzwerk und Sicherheit) an.

  4. Suchen Sie Ihre Sicherheitsgruppe in der VPCSicherheitsgruppe und notieren Sie sie sich.

Den Namen der Amazon EMR Master Node-Sicherheitsgruppe anzeigen
  1. Öffnen Sie Ihren EMR Amazon-Cluster. Weitere Informationen finden Sie unter Verwenden von Sicherheitskonfigurationen zur Einrichtung der Clustersicherheit im Amazon EMR Management Guide.

  2. Notieren Sie sich unter Sicherheit und Zugriff den Namen der Amazon EMR Master Node-Sicherheitsgruppe.

    Ein Screenshot, der den Namen der EMR Amazon-Master-Node-Sicherheitsgruppe in der EMR Amazon-Konsole hervorhebt.
Um eine EC2 Amazon-Sicherheitsgruppe zu erstellen oder zu ändern, um eine Verbindung zwischen Amazon Redshift und Amazon zu ermöglichen EMR
  1. Wählen Sie im EC2 Amazon-Dashboard Sicherheitsgruppen aus. Weitere Informationen finden Sie unter Regeln für Sicherheitsgruppen im EC2Amazon-Benutzerhandbuch

  2. Wählen Sie Sicherheitsgruppe erstellen aus.

  3. Wenn Sie verwendenVPC, wählen Sie die aus, in der VPC sich Ihre Amazon Redshift- und EMR Amazon-Cluster befinden.

  4. Fügen Sie eine eingehende Regel hinzu.

    1. Wählen Sie für Typ die Option Benutzerdefiniert TCP aus.

    2. Wählen Sie für Source (Quelle) die Option Custom (Benutzerdefiniert) aus.

    3. Geben Sie den Namen Ihrer Amazon-Redshift-Sicherheitsgruppe ein.

  5. Fügen Sie eine weitere eingehende Regel hinzu.

    1. Wählen Sie für Typ die Option TCP.

    2. Geben Sie für Port Range (Portbereich) 9083 ein.

      Anmerkung

      Der Standardport für eine EMR HMS ist 9083. Wenn Sie einen anderen Port HMS verwenden, geben Sie diesen Port in der Regel für eingehenden Datenverkehr und in der externen Schemadefinition an.

    3. Wählen Sie für Source (Quelle) die Option Custom (Benutzerdefiniert) aus.

  6. Geben Sie einen Namen und eine Beschreibung für die Sicherheitsgruppe ein.

  7. Wählen Sie Create security group (Sicherheitsgruppe erstellen) aus.

Um die EC2 Amazon-Sicherheitsgruppe, die Sie im vorherigen Verfahren erstellt haben, zu Ihrem Amazon Redshift-Cluster hinzuzufügen
  1. Wählen Sie Ihren Cluster in Amazon Redshift aus.

  2. Wählen Sie Properties (Eigenschaften).

  3. Rufen Sie die Network and security settings (Netzwerk- und Sicherheitseinstellungen) auf und wählen Sie Edit (Bearbeiten) aus.

  4. Wählen Sie VPCunter Sicherheitsgruppe den Namen der neuen Sicherheitsgruppe aus.

  5. Wählen Sie Änderungen speichern.

Um die EC2 Amazon-Sicherheitsgruppe zu Ihrem EMR Amazon-Cluster hinzuzufügen
  1. Wählen Sie in Amazon EMR Ihren Cluster aus. Weitere Informationen finden Sie unter Verwenden von Sicherheitskonfigurationen zur Einrichtung der Clustersicherheit im Amazon EMR Management Guide.

  2. Wählen Sie unter Hardware den Link für den Master-Knoten.

  3. Wählen Sie den Link in der Spalte EC2Instance-ID.

    Ein Screenshot, der einen EC2 Amazon-Instance-ID-Wert in der EMR Amazon-Konsole hervorhebt.
  4. Wählen Sie für Actions (Aktionen) die Option Security (Sicherheit), Change security groups (Sicherheitsgruppen ändern) aus.

  5. Wählen Sie unter Associated sercurity groups (Zugehörige Sicherheitsgruppen) die neue Sicherheitsgruppe und dann Add security group (Sicherheitsgruppe hinzufügen) aus.

  6. Wählen Sie Save (Speichern) aus.