Membuat kueri set data publik dengan library klien Java BigQuery

Membuat kueri set data publik dengan library klien Java BigQuery

Pelajari cara:

  1. Mengaktifkan Cloud Shell di a Google Cloud project.
  2. Membuka Cloud Shell Editor.
  3. Menyiapkan dependensi untuk kueri.
  4. Membuat kueri set data publik di BigQuery.
  5. Menjalankan pembersihan.

Perkiraan waktu penyelesaian:

Klik Mulai untuk memulai.

Mengaktifkan Cloud Shell di project Google Cloud

  1. Jika penagihan untuk suatu project tidak diaktifkan, Anda akan secara otomatis menggunakan sandbox BigQuery. Sandbox BigQuery memungkinkan Anda mempelajari BigQuery dengan sekumpulan fitur terbatas BigQuery tanpa biaya. Jika Anda tidak berencana untuk menggunakan project di luar dokumen ini, sebaiknya gunakan sandbox BigQuery.

  2. Klik Aktifkan Cloud Shell. Tampilkan

Untuk mempelajari cara membuka Cloud Shell Editor, klik Berikutnya.

Membuka Cloud Shell Editor

  1. Di Cloud Shell, buat project baru Java menggunakan Apache Maven:

    mvn archetype:generate \
        -DgroupId=com.google.app \
        -DartifactId=bigquery-java-quickstart \
        -DinteractiveMode=false
    

    Perintah ini membuat project Maven bernama bigquery-java-quickstart.

    Outputnya mirip dengan yang berikut ini. Beberapa baris dihilangkan untuk menyederhanakan output.

    [INFO] Scanning for projects...
    ...
    [INFO] Building Maven Stub Project (No POM) 1
    ...
    [INFO] BUILD SUCCESS
    ...
    

    Ada banyak sistem pengelolaan dependensi yang dapat Anda gunakan selain Maven. Untuk mengetahui informasi selengkapnya, pelajari cara menyiapkan lingkungan pengembangan Java untuk digunakan dengan library klien.

  2. Ganti nama file App.java yang dibuat Maven secara default:

    mv \
        bigquery-java-quickstart/src/main/java/com/google/app/App.java \
        bigquery-java-quickstart/src/main/java/com/google/app/SimpleApp.java
    
  3. Buka Cloud Shell Editor:

    cloudshell workspace bigquery-java-quickstart
    
  4. Jika Anda diminta untuk menyinkronkan classpath atau konfigurasi Java, klik Selalu.

    Jika Anda tidak diminta dan mengalami error yang berhubungan dengan classpath selama panduan ini, lakukan tindakan berikut:

    1. Klik File > Preferensi > Buka Setelan (UI).
    2. Klik Ekstensi > Java.
    3. Scroll ke Konfigurasi: Update Konfigurasi Build , lalu pilih otomatis.

Untuk mempelajari cara menyiapkan dependensi untuk kueri, klik Berikutnya.

Menyiapkan dependensi untuk kueri

  1. Di panel Penjelajah, cari project BIGQUERY-JAVA-QUICKSTART Anda.

  2. Klik file pom.xml untuk membukanya.

  3. Di dalam tag <dependencies>, tambahkan dependensi berikut setelah dependensi yang ada. Jangan ganti dependensi yang ada.

    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud-bigquery</artifactId>
    </dependency>
    
  4. Pada baris setelah tag penutup (</dependencies>), tambahkan kode berikut:

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.google.cloud</groupId>
          <artifactId>libraries-bom</artifactId>
          <version>26.1.5</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    

Untuk mempelajari cara membuat kueri set data publik di BigQuery, klik Berikutnya.

Membuat kueri set data publik di BigQuery

  1. Di panel Penjelajah, di project BIGQUERY-JAVA-QUICKSTART Anda, klik src > main/java/com/google/app > SimpleApp.java. File akan terbuka.

  2. Untuk membuat kueri terhadap set data bigquery-public-data.stackoverflow, biarkan baris pertama file (package com.google.app;), dan ganti isi file lainnya dengan kode berikut:

    
    import com.google.cloud.bigquery.BigQuery;
    import com.google.cloud.bigquery.BigQueryException;
    import com.google.cloud.bigquery.BigQueryOptions;
    import com.google.cloud.bigquery.FieldValueList;
    import com.google.cloud.bigquery.Job;
    import com.google.cloud.bigquery.JobId;
    import com.google.cloud.bigquery.JobInfo;
    import com.google.cloud.bigquery.QueryJobConfiguration;
    import com.google.cloud.bigquery.TableResult;
    
    
    public class SimpleApp {
    
      public static void main(String... args) throws Exception {
        // TODO(developer): Replace these variables before running the app.
        String projectId = "MY_PROJECT_ID";
        simpleApp(projectId);
      }
    
      public static void simpleApp(String projectId) {
        try {
          BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
          QueryJobConfiguration queryConfig =
              QueryJobConfiguration.newBuilder(
                      "SELECT CONCAT('https://stackoverflow.com/questions/', "
                          + "CAST(id as STRING)) as url, view_count "
                          + "FROM `bigquery-public-data.stackoverflow.posts_questions` "
                          + "WHERE tags like '%google-bigquery%' "
                          + "ORDER BY view_count DESC "
                          + "LIMIT 10")
                  // Use standard SQL syntax for queries.
                  // See: https://cloud.google.com/bigquery/sql-reference/
                  .setUseLegacySql(false)
                  .build();
    
          JobId jobId = JobId.newBuilder().setProject(projectId).build();
          Job queryJob = bigquery.create(JobInfo.newBuilder(queryConfig).setJobId(jobId).build());
    
          // Wait for the query to complete.
          queryJob = queryJob.waitFor();
    
          // Check for errors
          if (queryJob == null) {
            throw new RuntimeException("Job no longer exists");
          } else if (queryJob.getStatus().getExecutionErrors() != null
              && queryJob.getStatus().getExecutionErrors().size() > 0) {
            // TODO(developer): Handle errors here. An error here do not necessarily mean that the job
            // has completed or was unsuccessful.
            // For more details: https://cloud.google.com/bigquery/troubleshooting-errors
            throw new RuntimeException("An unhandled error has occurred");
          }
    
          // Get the results.
          TableResult result = queryJob.getQueryResults();
    
          // Print all pages of the results.
          for (FieldValueList row : result.iterateAll()) {
            // String type
            String url = row.get("url").getStringValue();
            String viewCount = row.get("view_count").getStringValue();
            System.out.printf("%s : %s views\n", url, viewCount);
          }
        } catch (BigQueryException | InterruptedException e) {
          System.out.println("Simple App failed due to error: \n" + e.toString());
        }
      }
    }

    Kueri akan menampilkan 10 halaman Stack Overflow yang paling sering dilihat dan jumlah tampilannya.

  3. Klik kanan SimpleApp.java , lalu klik Jalankan Java. Jika Anda diminta untuk memberi otorisasi kepada Cloud Shell dan menyetujui persyaratannya, klik Otorisasi.

    Hasilnya mirip dengan berikut ini:

    https://stackoverflow.com/questions/35159967 : 170023 views
    https://stackoverflow.com/questions/22879669 : 142581 views
    https://stackoverflow.com/questions/10604135 : 132406 views
    https://stackoverflow.com/questions/44564887 : 128781 views
    https://stackoverflow.com/questions/27060396 : 127008 views
    https://stackoverflow.com/questions/12482637 : 120766 views
    https://stackoverflow.com/questions/20673986 : 115720 views
    https://stackoverflow.com/questions/39109817 : 108368 views
    https://stackoverflow.com/questions/11057219 : 105175 views
    https://stackoverflow.com/questions/43195143 : 101878 views
    

Anda telah berhasil membuat kueri set data publik dengan library klien Java BigQuery.

Untuk menghindari timbulnya biaya pada akun Anda dan mempelajari langkah berikutnya, klik Berikutnya.

Langkah berikutnya

Simpan resource yang Anda buat dan lakukan lebih banyak hal dengan BigQuery, atau lakukan pembersihan untuk menghindari biaya penagihan.

Melakukan lebih banyak hal dengan BigQuery

Pembersihan

Agar akun Anda tidak dikenai biaya, hapus project, atau hapus resource yang Anda buat di panduan ini. Google Cloud Google Cloud

Menghapus project

Jika Anda membuat project baru untuk mempelajari BigQuery dan tidak lagi memerlukan project tersebut, hapus project tersebut. Perlu diketahui bahwa menghapus project akan menghapus semua hal dalam project dan ID project kustom akan hilang.

Menghapus resource

Jika Anda menggunakan project yang ada, hapus folder bigquery-java-quickstart yang Anda buat:

  1. Di Cloud Shell, pindahkan direktori:

    cd ..
    
  2. Hapus resource yang Anda buat:

    rm -R bigquery-java-quickstart
    

    Flag -R menghapus semua aset di dalam folder.