Einführung in die Suche in BigQuery

Mit BigQuery-Suchindexen können Sie GoogleSQL verwenden, um bestimmte Datenelemente zu finden, die in unstrukturiertem Text und in semistrukturierten JSON-Daten auftreten, ohne die Tabellenschemas im Voraus kennen zu müssen.

Mit Suchindexen bietet BigQuery einen leistungsstarken Spalten- und Textsuchdienst in einer Plattform, der eine effiziente Zeilensuche ermöglicht, wenn Sie einzelne Datenzeilen suchen müssen. Ein häufiger Anwendungsfall ist die Loganalyse. Beispielsweise können Sie die Datenzeilen, die einem Nutzer für die Berichterstellung zur EU-Datenschutz-Grundverordnung (DSGVO) zugeordnet sind, oder bestimmte Fehlercodes in einer Textnutzlast ermitteln.

BigQuery speichert und verwaltet die Indexe. Wenn Daten in BigQuery verfügbar sind, können Sie sie sofort mit der Funktion SEARCH abrufen.

Anwendungsfälle

Mit BigQuery-Suchindexen können Sie die folgenden Aufgaben ausführen:

  • In BigQuery-Tabellen gespeicherte System-, Netzwerk- oder Anwendungslogs suchen
  • Identifizieren von Datenelementen zum Löschen, um regulatorische Prozesse zu erfüllen.
  • Fehlerbehebung für Entwickler unterstützen
  • Sicherheitsprüfungen durchführen
  • Dashboard erstellen, das sehr selektive Suchfilter erfordert
  • Vorverarbeitete Daten auf genaue Übereinstimmungen prüfen

Weitere Informationen finden Sie unter Suchindex erstellen und Mit einem Index suchen.

Preise

Die für den Aufbau und die Aktualisierung Ihrer Suchindizes erforderliche Verarbeitung ist kostenlos, wenn die Gesamtgröße der indizierten Tabellen in Ihrem Unternehmen unter dem für Ihre Region geltenden Limit liegt. Um die Indexierung über dieses Limit hinaus zu unterstützen, müssen Sie für die Verarbeitung der Indexverwaltungsjobs eine eigene Reservierung bereitstellen. Suchindexe verursachen Speicherkosten, wenn sie aktiv sind. Die Indexspeichergröße finden Sie in der Ansicht INFORMATION_SCHEMA.SEARCH_INDEXES.

Rollen und Berechtigungen

Zum Erstellen eines Suchindex benötigen Sie die IAM-Berechtigung bigquery.tables.createIndex für die Tabelle, in der Sie den Index erstellen. Zum Löschen eines Suchindex benötigen Sie die Berechtigung bigquery.tables.deleteIndex. Jede der folgenden vordefinierten IAM-Rollen enthält die Berechtigungen, die Sie benötigen, um mit Suchindexen zu arbeiten:

  • BigQuery Dateninhaber (roles/bigquery.dataOwner)
  • BigQuery Datenmitbearbeiter (roles/bigquery.dataEditor)
  • BigQuery Administrator (roles/bigquery.admin)

Beschränkungen

  • Sie können einen Suchindex nicht direkt für eine Ansicht oder eine materialisierte Ansicht erstellen. Beim Aufrufen der Funktion SEARCH für eine Ansicht einer indexierten Tabelle wird jedoch der zugrunde liegende Suchindex verwendet.
  • Wenn Sie eine Tabelle umbenennen, nachdem Sie einen Suchindex darauf erstellt haben, wird der Index ungültig.
  • Die Funktion SEARCH ist für Punktabrufe vorgesehen. Die ungenaue Suche, die Rechtschreibkorrektur, Platzhalter und andere Arten von Dokumentsuchen sind nicht verfügbar.
  • Wenn der Suchindex noch nicht zu 100 % abgedeckt ist, wird Ihnen trotzdem der gesamte in der Ansicht INFORMATION_SCHEMA.SEARCH_INDEXES gemeldete Indexspeicher in Rechnung gestellt.
  • Abfragen, die die Funktion SEARCH enthalten, werden von BigQuery BI Engine nicht beschleunigt.
  • Suchindexe werden nicht verwendet, wenn die indexierte Tabelle durch eine DML-Anweisung geändert wurde. Sie können jedoch verwendet werden, wenn die Funktion SEARCH Teil einer Unterabfrage in einer DML-Anweisung ist.

    • Ein Suchindex wird in der folgenden Abfrage nicht verwendet:
    DELETE FROM my_dataset.indexed_table
    WHERE SEARCH(user_id, '123');
    
    • Ein Suchindex kann in der folgenden Abfrage verwendet werden:
    DELETE FROM my_dataset.other_table
    WHERE
      user_id IN (
        SELECT user_id
        FROM my_dataset.indexed_table
        WHERE SEARCH(user_id, '123')
      );
    

Nächste Schritte