Fehlersuche bei der Verwendung von Apache Iceberg™-Tabellen mit Snowflake Open Catalog in Snowflake¶
Die folgenden Szenarios können Ihnen bei der Behebung von Problemen helfen, die bei der Verwendung von Apache Iceberg™-Tabellen mit Snowflake Open Catalog in Snowflake auftreten können.
Sie können keine Katalogintegration für Open Catalog erstellen¶
Dieser Abschnitt beschreibt die Problembehandlung bei der Erstellung einer Katalogintegration für Open Catalog.
Identifizieren Sie zur Problembehandlung die Fehlermeldung, die Sie in der SQL-Ausgabe erhalten haben, als Ihre Katalogintegration nicht erstellt werden konnte.
Fehler |
SQL Execution Error: Cannot create catalog integration <catalog_integration_name> due to error: Unable to process: Unable to find
warehouse <catalog_name>. Check the REST configuration and ensure the warehouse name '<catalog_name>' matches the Polaris catalog
name.
|
---|---|
Ursache |
Der |
Lösung |
Aktualisieren Sie Wichtig
|
Fehler |
SQL Execution Error: User provided authentication credentials are invalid for catalog integration <catalog_integration_name> due
to error: Malformed request: unauthorized_client: The client is not authorized.
|
---|---|
Ursache |
Das OAuth-Token, das Sie in der Katalogintegration angegeben haben, ist ungültig. |
Lösung |
Vergewissern Sie sich, dass die für |
Sie können keine von Snowflake verwaltete Tabelle erstellen¶
In diesem Abschnitt wird die Fehlerbehebung bei der Erstellung einer von Snowflake verwalteten Tabelle beschrieben.
Um das Problem zu beheben, identifizieren Sie die Fehlermeldung, die Sie in der SQL-Ausgabe von erhalten haben, als Ihre Tabelle nicht erstellt werden konnte.
Fehler |
SQL Execution Error: Failed to validate CATALOG_SYNC target '<catalog_integration_name>' due to error: The Snowflake service
connection associated with the Polaris catalog integration does not have the required privileges to send notifications. The
minimum required privileges are TABLE_CREATE, TABLE_WRITE_PROPERTIES, TABLE_DROP, NAMESPACE_CREATE, and NAMESPACE_DROP.
|
---|---|
Ursache |
Die Katalogrolle für den externen Katalog, mit dem Sie eine Verbindung herstellen möchten, hat nicht die erforderlichen Berechtigungen, um Benachrichtigungen an Open Catalog zu senden. |
Lösung |
Aktualisieren Sie die Katalogrolle, indem Sie der Katalogrolle für Ihren externen Katalog alle folgenden Berechtigungen erteilen:
Wo Sie die Katalogrolle aktualisieren, hängt davon ab, ob die darin enthaltenen Berechtigungen auf Katalog-, Namespace- oder Tabellenebene angewendet werden. Siehe die für Ihre Katalogrolle anwendbare Prozedur: |
Fehler |
SQL Execution Error: Failed to access the REST endpoint of catalog integration <catalog_integration_name> with error: Unable to
process: Failed to get subscoped credentials: Error assuming AWS_ROLE:
User: <IAM_user_arn> is not authorized to perform: sts:AssumeRole on resource: <S3_role_arn>. Check the accessibility of the REST
catalog URI or warehouse.
|
---|---|
Ursache |
Der AWS IAM-Benutzer für Ihren externen Katalog ist nicht in der Lage, die Rolle zu übernehmen, die die Berechtigung zum Zugriff auf S3 hat. |
Lösung |
Ändern Sie das Richtliniendokument in AWS, um dem IAM-Benutzer für Ihr Open Catalog Konto die Möglichkeit zu geben, die Rolle zu übernehmen, die über die Berechtigung zum Zugriff auf Ihren S3-Bucket verfügt. Um das Richtliniendokument zu ändern, müssen Sie die IAM-Rolle in AWS aktualisieren. Details finden Sie unter AWS IAM Den Benutzer für Ihr Snowflake Open Catalog-Konto abrufen und dann Dem IAM-Benutzer Berechtigungen für den Zugriff auf Bucket-Objekte erteilen. Beachten Sie, dass das Richtliniendokument den IAM ARN-Benutzer und die externen ID sowohl für Ihr externes Volume als auch für Ihren externen Katalog in Open Catalog enthalten muss. Beachten Sie im folgenden Beispiel-Richtliniendokument die folgenden Werte:
|
Fehler |
SQL Execution Error: Failed to validate CATALOG_SYNC target '<catalog_integration_name>' due to error: The associated Polaris
catalog cannot be of type INTERNAL.
|
---|---|
Ursache |
Sie versuchen, eine von Snowflake verwaltete Tabelle mit einem internen Katalog in Open Catalog zu synchronisieren. Sie können eine von Snowflake verwaltete Tabelle nur mit einem externen Katalog in Open Catalog synchronisieren. |
Lösung |
Sie können einen bestehenden internen Katalog nicht in einen externen Katalog aktualisieren, sondern müssen einen neuen externen Katalog erstellen:
|
Fehler |
SQL Execution Error: Failed to validate CATALOG_SYNC target '<catalog_integration_name>' due to error: SQL Execution Error:
Resource on the REST endpoint of catalog integration CATINT is forbidden due to error: Forbidden: Invalid locations '[<path to metadata file>]'
for identifier '<identifier>': <path to metadata file> is not in the list of allowed locations: [<list of allowed locations>].
|
---|---|
Ursache |
Der Pfad zur Metadatendatei für die Tabelle, die Sie erstellen möchten, ist nicht in der Liste der zulässigen Speicherorte für Ihren externen Cloudanbieter enthalten. Daher kann Open Catalog nicht auf die Metadatendatei für die Tabelle zugreifen. |
Lösung |
Stellen Sie sicher, dass der Speicherort der Metadatendatei unter dem Pfad des standardmäßigen Speicherorts für den Katalog liegt, den der Service-Administrator in Open Catalog erstellt hat, oder dass er unter einem der zusätzlichen zulässigen Speicherorte liegt, falls zutreffend. Eine Liste der zulässigen Speicherorte erhalten Sie, wenn Sie den Katalog in Open Catalog auswählen und das Feld Standorte aufrufen. |
Sie können eine Iceberg-Tabelle nicht ändern, wenn Sie den Parameter CATALOG_SYNC angeben¶
In diesem Abschnitt wird beschrieben, wie Sie den Parameter CATALOG_SYNC ändern können, um Fehler zu beheben.
Identifizieren Sie zur Problembehandlung die Fehlermeldung, die Sie in der SQL-Ausgabe erhalten haben, als Ihre Tabelle nicht geändert werden konnte.
Fehler |
SQL Execution Error: Failed to validate CATALOG_SYNC target '<catalog_integration_name>' due to error: The Snowflake service
connection associated with the Polaris catalog integration does not have the required privileges to send notifications. The minimum
required privileges are TABLE_CREATE, TABLE_WRITE_PROPERTIES, TABLE_DROP, NAMESPACE_CREATE, and NAMESPACE_DROP.
|
---|---|
Ursache |
Die Katalogrolle für den externen Katalog, mit dem Sie eine Verbindung herstellen möchten, hat nicht die erforderlichen Berechtigungen, um Benachrichtigungen an Open Catalog zu senden. |
Lösung |
Erteilen Sie der Katalogrolle für Ihren externen Katalog alle der folgenden Berechtigungen:
Wo Sie die Katalogrolle aktualisieren, hängt davon ab, ob ihre Berechtigungen auf Katalog-, Namespace- oder Tabellenebene angewendet werden. Siehe die für Ihre Katalogrolle anwendbare Prozedur: |
Fehler |
SQL Execution Error: Failed to access the REST endpoint of catalog integration <catalog_integration_name> with error: Unable to
process: Failed to get subscoped credentials: Error assuming AWS_ROLE:
User: <IAM_user_arn> is not authorized to perform: sts:AssumeRole on resource: <S3_role_arn>. Check the accessibility of the REST
catalog URI or warehouse.
|
---|---|
Ursache |
Der AWS IAM-Benutzer für Ihren externen Katalog hat keine Berechtigung für den Zugriff auf S3-Bucket-Objekte. |
Lösung |
Ändern Sie das Richtliniendokument in AWS, damit der IAM-Benutzer für Ihr Open Catalog Konto auf Objekte in Ihrem S3-Bucket zugreifen kann. Um das Richtliniendokument zu ändern, müssen Sie die IAM-Rolle in AWS aktualisieren. Details finden Sie unter AWS IAM Den Benutzer für Ihr Polaris Open Catalog-Konto abrufen und dann Dem IAM-Benutzer Berechtigungen für den Zugriff auf Bucket-Objekte erteilen. Beachten Sie, dass das Richtliniendokument den IAM ARN-Benutzer und die externen ID sowohl für Ihr externes Volume als auch für Ihren externen Katalog in Open Catalog enthalten muss. Beachten Sie im folgenden Beispiel-Richtliniendokument die folgenden Werte:
|
Fehler |
SQL Execution Error: Failed to validate CATALOG_SYNC target '<catalog_integration_name>' due to error: The associated Polaris
catalog cannot be of type INTERNAL.
|
---|---|
Ursache |
Sie versuchen, eine von Snowflake verwaltete Iceberg-Tabelle mit einer Katalogintegration für einen internen Katalog in Open Catalog zu synchronisieren. Sie können eine von Snowflake verwaltete Iceberg-Tabelle nur mit einem externen Katalog in Open Catalog synchronisieren. |
Lösung |
Sie können einen bestehenden internen Katalog nicht in einen externen Katalog aktualisieren, sondern müssen einen neuen externen Katalog erstellen:
|
Fehler |
SQL Execution Error: Failed to validate CATALOG_SYNC target '<catalog_integration_name>' due to error: SQL Execution Error:
Resource on the REST endpoint of catalog integration CATINT is forbidden due to error: Forbidden: Invalid locations '[<path to metadata file>]'
for identifier '<identifier>': <path to metadata file> is not in the list of allowed locations: [<list of allowed locations>].
|
---|---|
Ursache |
Der Pfad zur Metadatendatei für die Tabelle, die Sie erstellen möchten, ist nicht in der Liste der zulässigen Speicherorte für Ihren externen Cloudanbieter enthalten. Daher kann Open Catalog nicht auf die Metadatendatei für die Tabelle zugreifen. |
Lösung |
Stellen Sie sicher, dass der Speicherort der Metadatendatei unter dem Pfad des standardmäßigen Speicherorts für den Katalog liegt, den der Service-Administrator in Open Catalog erstellt hat, oder dass er unter einem der zusätzlichen zulässigen Speicherorte liegt, falls zutreffend. Eine List der zulässigen Speicherorte erhalten Sie, wenn Sie den Katalog in Open Catalog auswählen und das Feld Locations aufrufen. |