Menelusuri dan melihat aset data dengan Data Catalog

Dokumen ini menjelaskan cara menggunakan Data Catalog untuk melakukan penelusuran aset data, seperti:

  • Set data tertaut Analytics Hub
  • Set data, tabel, tampilan, dan model BigQuery
  • Instance, cluster, dan tabel Bigtable (termasuk detail grup kolom)
  • Template tag Data Catalog, grup entri, dan entri kustom
  • Danau, zona, tabel, dan kumpulan file dataplex
  • Layanan, database, dan tabel Dataproc Metastore
  • Aliran data Pub/Sub
  • Instance, database, tabel, dan tampilan Spanner
  • Resource Model, Dataset, dan Vertex AI Feature Store
  • Aset dalam silo data perusahaan yang terhubung ke Data Catalog

Cakupan penelusuran

Anda mungkin memiliki hasil penelusuran yang berbeda berdasarkan izin Anda. Cakupan hasil penelusuran Data Catalog disesuaikan dengan peran Anda.

Anda dapat meninjau berbagai jenis peran dan izin IAM yang tersedia untuk Data Catalog.

Misalnya, jika Anda memiliki akses baca metadata BigQuery ke suatu objek, objek tersebut akan muncul dalam hasil penelusuran Data Catalog Anda. Daftar berikut menjelaskan izin minimum yang diperlukan:

  • Untuk menelusuri tabel, Anda memerlukan izin bigquery.tables.get untuk tabel tersebut.

  • Untuk menelusuri set data, Anda memerlukan izin bigquery.datasets.get untuk set data tersebut.

  • Untuk menelusuri metadata set data atau tabel, Anda memerlukan peran roles/bigquery.metadataViewer.

  • Untuk menelusuri semua resource dalam suatu project atau organisasi, Anda memerlukan izin datacatalog.catalogs.searchAll. Ini berfungsi untuk semua resource yang terpisah dari sistem sumber.

Jika Anda memiliki akses ke tabel BigQuery, tetapi tidak ke set data yang berisi tabel tersebut, tabel tersebut akan tetap muncul seperti yang diharapkan di penelusuran Data Catalog. Logika akses yang sama berlaku untuk semua sistem yang didukung, seperti Pub/Sub dan Data Catalog itu sendiri.

Kueri penelusuran Data Catalog tidak menjamin penarikan penuh. Hasil yang cocok dengan kueri Anda mungkin tidak ditampilkan, bahkan di halaman hasil berikutnya. Selain itu, hasil yang ditampilkan (dan tidak ditampilkan) dapat bervariasi jika Anda mengulangi kueri penelusuran.

Jika Anda mengalami masalah penarikan dan tidak perlu mengambil hasil dalam urutan tertentu, pertimbangkan untuk menyetel parameter orderBy ke default saat memanggil metode catalog.search.

Penggunaan flag admin_search pada permintaan penelusuran menjamin penarikan penuh. Penelusuran Administrator memerlukan izin datacatalog.catalogs.searchAll agar dapat ditetapkan pada semua project dan organisasi dalam cakupan penelusuran. Saat menggunakan admin_search, hanya default orderBy yang diizinkan.

Tabel dengan sharding tanggal

Data Catalog menggabungkan tabel yang di-sharding menjadi satu entri logis. Entri ini memiliki skema yang sama dengan shard tabel dengan tanggal terbaru, dan berisi informasi agregat tentang jumlah total shard. Entri ini memperoleh tingkat aksesnya dari set data yang dimilikinya. Penelusuran Data Catalog hanya menampilkan entri logis ini jika pengguna memiliki akses ke set data yang memuatnya. Setiap tabel yang di-sharding tidak dapat dilihat di penelusuran Data Catalog, meskipun tabel tersebut ada di Data Catalog dan dapat diberi tag.

Filter

Filter memungkinkan Anda mempersempit hasil penelusuran. Semua filter dikelompokkan dalam bagian:

  • Cakupan untuk membatasi penelusuran hanya untuk item berbintang.
  • Sistem seperti BigQuery, Pub/Sub, Dataplex, Dataproc Metastore, sistem kustom, Vertex AI, dan Data Catalog itu sendiri. Sistem Data Catalog berisi kumpulan file dan entri kustom.
  • Danau dan zona berasal dari Dataplex.
  • Jenis data seperti aliran data, set data, lake, zona, kumpulan file, model, tabel, tampilan, layanan, database, dan jenis kustom.
  • Project mencantumkan semua project yang tersedia untuk Anda.
  • Tag mencantumkan semua template tag (dan kolomnya masing-masing) yang tersedia untuk Anda.
  • Set data berasal dari BigQuery dan Vertex AI.
  • Set data publik adalah data yang tersedia untuk publik dari BigQuery.

Anda dapat menggabungkan filter dari beberapa bagian untuk menemukan aset yang cocok dengan setidaknya satu kondisi dari setiap bagian yang dipilih. Beberapa filter yang dipilih dalam satu bagian dievaluasi menggunakan operator logis "ATAU". Misalnya, dengan kombinasi filter berikut:

Panel filter nilai tag dengan beberapa bagian dipilih.

Data Catalog mencari:

  • Set data BigQuery diberi tag dengan template MyTemplate1.

  • Set data BigQuery diberi tag dengan template MyTemplate2.

  • Tabel BigQuery diberi tag dengan template MyTemplate1.

  • Tabel BigQuery diberi tag dengan template MyTemplate2.

Filter menurut nilai tag

Filter Tag memungkinkan Anda membuat kueri untuk aset yang diberi tag menggunakan template tertentu. Anda dapat menggunakan menu Sesuaikan untuk lebih mempersempit hasil dan memfilter berdasarkan nilai tag tertentu. Kondisi filter nilai tag bergantung pada jenis data kolom tag tersebut. Misalnya, untuk kolom tanggal dan waktu, Anda dapat menentukan tanggal atau rentang tertentu.

Visibilitas filter

Filter yang ditampilkan di setiap bagian bergantung pada kueri saat ini di Kotak penelusuran. Seluruh kumpulan hasil penelusuran dapat menyertakan entri yang cocok dengan kueri saat ini, tetapi filter yang sesuai dengan entri tersebut mungkin tidak ditampilkan di panel Filters.

Cara menelusuri aset data

Konsol

Konsol

  1. Untuk meluncurkan kueri penelusuran Dataplex di Konsol Google Cloud, buka halaman Dataplex Search.

    Buka Dataplex Search

  2. Di kolom penelusuran, masukkan kueri Anda atau gunakan panel Filter untuk menyaring parameter penelusuran.

Anda dapat menambahkan filter berikut secara manual:

  • Di bagian Project, filter project dengan mengklik tombol ADD PROJECT, menelusuri project tertentu, memilihnya, lalu mengklik BUKA.
  • Di Tag, filter template tag dengan mengklik drop-down Tambahkan template tag lainnya, menelusuri template tertentu, memilihnya, lalu mengklik Oke.

Selain itu, Anda dapat:

  • Centang kotak Sertakan set data publik untuk menelusuri aset data yang tersedia secara publik di Google Cloud selain aset yang tersedia untuk Anda.

Contoh penelusuran

Misalnya, untuk menelusuri tabel trips yang Anda siapkan di Mengonfigurasi template tag, tag, ringkasan, dan pengelolaan data:

  1. Masukkan trips di kolom penelusuran, lalu klik Telusuri.
  2. Pilih BigQuery dari bagian Systems untuk mengecualikan aset data dengan nama yang sama seperti milik sistem lain.
  3. Pilih project ID Anda dari bagian Project untuk mengecualikan aset data dari project lain. Jika project Anda tidak ditampilkan di bagian tersebut, klik ADD PROJECT, lalu pilih di jendela dialog.
  4. Pilih Template Tag Demo dari bagian Template tag untuk melihat apakah tag yang menggunakan template ini dilampirkan ke tabel trips. Jika template ini tidak ditampilkan di bagian tersebut, klik menu drop-down Add more tags, cari dan pilih template ini, lalu klik OK.

Dengan semua filter yang dipilih, hasil penelusuran hanya berisi satu entri—tabel trips BigQuery di project Anda dengan tag terlampir yang menggunakan Demo Tag Template.

Selain itu, Anda dapat melakukan hal berikut:

  1. Filter penelusuran Anda dengan menambahkan keyword:value ke istilah penelusuran Anda di kolom penelusuran:

    Kata kunciDeskripsi
    name: Nama aset data yang cocok
    column: Mencocokkan nama kolom atau nama kolom bertingkat
    description: Deskripsi tabel pencocokan

  2. Lakukan penelusuran tag dengan menambahkan salah satu awalan kata kunci tag berikut ke istilah penelusuran Anda di kolom penelusuran:

    TagDeskripsi
    tag:project-name.tag_template_name Nama tag pencocokan
    tag:project-name.tag_template_name.key Mencocokkan kunci tag
    tag:project-name.tag_template_name.key:value Pasangan tag pencocokan key:string value

Tips ekspresi penelusuran

  • Sertakan ekspresi penelusuran dalam tanda kutip ("search terms") jika berisi spasi.

  • Anda dapat mengawali kata kunci dengan "NOT" (semua HURUF BESAR diperlukan) untuk mencocokkan negasi logis filter keyword:term. Anda juga dapat menggunakan operator boolean "AND" dan "OR" (perlu semua CAPS) untuk menggabungkan ekspresi penelusuran.

    Misalnya:NOT column:term mencantumkan semua kolom kecuali yang cocok dengan istilah yang ditentukan. Untuk daftar kata kunci dan istilah lainnya yang dapat Anda gunakan dalam ekspresi penelusuran Data Catalog, lihat Sintaksis penelusuran Data Catalog.

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Katalog Data menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Data Catalog Java.

Untuk mengautentikasi ke Data Catalog, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import com.google.cloud.datacatalog.v1.DataCatalogClient;
import com.google.cloud.datacatalog.v1.DataCatalogClient.SearchCatalogPagedResponse;
import com.google.cloud.datacatalog.v1.SearchCatalogRequest;
import com.google.cloud.datacatalog.v1.SearchCatalogRequest.Scope;
import com.google.cloud.datacatalog.v1.SearchCatalogResult;
import java.io.IOException;

// Sample to search catalog
public class SearchAssets {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "my-project-id";
    String query = "type=dataset";
    searchCatalog(projectId, query);
  }

  public static void searchCatalog(String projectId, String query) throws IOException {
    // Create a scope object setting search boundaries to the given organization.
    // Scope scope = Scope.newBuilder().addIncludeOrgIds(orgId).build();

    // Alternatively, search using project scopes.
    Scope scope = Scope.newBuilder().addIncludeProjectIds(projectId).build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
      // Search the catalog.
      SearchCatalogRequest searchCatalogRequest =
          SearchCatalogRequest.newBuilder().setScope(scope).setQuery(query).build();
      SearchCatalogPagedResponse response = dataCatalogClient.searchCatalog(searchCatalogRequest);

      System.out.println("Search results:");
      for (SearchCatalogResult result : response.iterateAll()) {
        System.out.println(result);
      }
    }
  }
}

Node.js

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di panduan memulai Katalog Data menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Data Catalog Node.js.

Untuk mengautentikasi ke Data Catalog, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

// Import the Google Cloud client library.
const {DataCatalogClient} = require('@google-cloud/datacatalog').v1;
const datacatalog = new DataCatalogClient();

async function searchAssets() {
  // Search data assets.

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const projectId = 'my_project'; // Google Cloud Platform project

  // Set custom query.
  const query = 'type=lake';

  // Create request.
  const scope = {
    includeProjectIds: [projectId],
    // Alternatively, search using Google Cloud Organization scopes.
    // includeOrgIds: [organizationId],
  };

  const request = {
    scope: scope,
    query: query,
  };

  const [result] = await datacatalog.searchCatalog(request);

  console.log(`Found ${result.length} datasets in project ${projectId}.`);
  console.log('Datasets:');
  result.forEach(dataset => {
    console.log(dataset.relativeResourceName);
  });
}
searchAssets();

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Katalog Data menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Data Catalog Python.

Untuk mengautentikasi ke Data Catalog, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

from google.cloud import datacatalog_v1

datacatalog = datacatalog_v1.DataCatalogClient()

# TODO: Set these values before running the sample.
project_id = "project_id"

# Set custom query.
search_string = "type=dataset"
scope = datacatalog_v1.types.SearchCatalogRequest.Scope()
scope.include_project_ids.append(project_id)

# Alternatively, search using organization scopes.
# scope.include_org_ids.append("my_organization_id")

search_results = datacatalog.search_catalog(scope=scope, query=search_string)

print("Results in project:")
for result in search_results:
    print(result)

BARIS REST & CMD

REST

Jika Anda tidak memiliki akses ke library Klien Cloud untuk bahasa Anda atau ingin menguji API menggunakan permintaan REST, lihat contoh berikut dan lihat dokumentasi Data Catalog REST API.

1. Telusuri katalog.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • organization-id: ID organisasi GCP
  • project-id: Project ID GCP

Metode HTTP dan URL:

POST https://datacatalog.googleapis.com/v1/catalog:search

Meminta isi JSON:

{
  "query":"trips",
  "scope":{
    "includeOrgIds":[
      "organization-id"
    ]
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "results":[
    {
      "searchResultType":"ENTRY",
      "searchResultSubtype":"entry.table",
"relativeResourceName":"projects/project-id/locations/US/entryGroups/@bigquery/entries/entry1-id",
      "linkedResource":"//bigquery.googleapis.com/projects/project-id/datasets/demo_dataset/tables/taxi_trips"
    },
    {
      "searchResultType":"ENTRY",
      "searchResultSubtype":"entry.table",
      "relativeResourceName":"projects/project-id/locations/US/entryGroups/@bigquery/entries/entry2-id",
      "linkedResource":"//bigquery.googleapis.com/projects/project-id/datasets/demo_dataset/tables/tlc_yellow_trips_2018"
    }
  ]
}

Lihat detail tabel

Di dalam konsol Cloud, Anda dapat menggunakan Data Catalog untuk melihat detail tabel.

  1. Buka halaman penelusuran Dataplex.

    Buka Data Catalog

  2. Di kotak penelusuran, masukkan nama set data yang memiliki tabel.

    Misalnya, jika menyelesaikan Panduan Memulai, Anda dapat menelusuri demo-dataset dan memilih tabel trips.

  3. Klik tabel.

    Halaman detail tabel BigQuery akan terbuka.

Detail tabel mencakup bagian berikut:

  • Detail tabel BigQuery. Mencakup informasi seperti waktu pembuatan, waktu perubahan terakhir, waktu habis masa berlaku, URL resource, label, dan sebagainya.

  • Tag. Mencantumkan tag yang diterapkan.Anda dapat mengedit tag dari halaman ini dan melihat template tag. Klik ikon Tindakan.

  • Tag skema dan kolom. Mencantumkan skema yang diterapkan dan nilainya.

Bintangi entri favorit Anda dan telusuri

Jika sering menjelajahi aset data yang sama, Anda dapat menyertakan entrinya dalam daftar yang dipersonalisasi dengan menandainya dengan bintang. Untuk melakukannya di UI Dataplex:

  1. Buka halaman penelusuran Dataplex dan temukan aset Anda.

    Buka Data Catalog

  2. Bintangi entrinya dengan salah satu dari dua cara berikut:

    • Klik ikon di samping entri dalam hasil penelusuran.
    • Klik nama entri untuk membuka halaman detailnya dan klik tombol STAR pada panel tindakan di bagian atas.

Anda dapat membintangi hingga 200 entri.

Entri berbintang akan muncul dalam daftar Berbintang Entries di halaman penelusuran sebelum Anda memasukkan kueri penelusuran di kotak penelusuran. Daftar ini hanya dapat dilihat oleh Anda.

Untuk menelusuri entri berbintang saja, pilih opsi Cakupan > Berbintang di panel Filters.

Anda juga dapat menggunakan metode Data Catalog API yang sesuai untuk membintangi dan menghapus bintang entri. Saat menelusuri aset, gunakan parameter starredOnly pada objek scope. Lihat metode katalog.search.