BigQuery 데이터 전송 클라이언트 라이브러리

이 페이지에서는 BigQuery Data Transfer API를 위한 새로운 Cloud 클라이언트 라이브러리를 시작하는 방법을 보여 줍니다. 클라이언트 라이브러리 설명에서 이전 Google API 클라이언트 라이브러리 등 Cloud API용 클라이언트 라이브러리에 대해 자세히 알아보세요.

클라이언트 라이브러리 설치

C#

자세한 내용은 C# 개발 환경 설정을 참조하세요.
Install-Package Google.Cloud.BigQuery.DataTransfer.V1 -Pre

Go

go get -u cloud.google.com/go/bigquery/datatransfer/apiv1

자바

자세한 내용은 자바 개발 환경 설정을 참조하세요. Maven을 사용 중인 경우 pom.xml 파일에 다음을 추가하세요.
<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-bigquerydatatransfer</artifactId>
  <version>0.79.0-beta</version>
</dependency>
Gradle을 사용하는 경우 종속성에 다음을 추가하세요.
compile 'com.google.cloud:google-cloud-bigquerydatatransfer:0.79.0-beta'
SBT를 사용 중인 경우 종속성에 다음을 추가하세요.
libraryDependencies += "com.google.cloud" % "google-cloud-bigquerydatatransfer" % "0.79.0-beta"

IntelliJ 또는 Eclipse를 사용하는 경우 다음과 같은 IDE 플러그인을 사용하여 클라이언트 라이브러리를 프로젝트에 추가할 수 있습니다.

이 플러그인은 서비스 계정의 키 관리와 같은 추가 기능을 제공합니다. 자세한 내용은 각 플러그인의 문서를 참조하세요.

Node.js

자세한 내용은 Node.js 개발 환경 설정을 참조하세요.
npm install --save @google-cloud/bigquery-data-transfer

PHP

composer require google/cloud-bigquerydatatransfer

Python

자세한 내용은 Python 개발 환경 설정을 참조하세요.
pip install --upgrade google-cloud-bigquery-datatransfer

Ruby

자세한 내용은 Ruby 개발 환경 설정을 참조하세요.
gem install google-cloud-bigquery-data_transfer

인증 설정

클라이언트 라이브러리를 실행하려면 우선 서비스 계정을 만들고 환경 변수를 설정하여 인증을 설정해야 합니다. 다음 단계에 따라 인증 설정을 완료합니다. 자세한 내용은 GCP 인증 문서를 참조하세요.

GCP Console

  1. In the GCP Console, go to the Create service account key page.

    Go to the Create Service Account Key page
  2. From the Service account list, select New service account.
  3. In the Service account name field, enter a name.
  4. From the Role list, select Project > Owner.

    Note: The Role field authorizes your service account to access resources. You can view and change this field later by using the GCP Console. If you are developing a production app, specify more granular permissions than Project > Owner. For more information, see granting roles to service accounts.
  5. Click Create. A JSON file that contains your key downloads to your computer.

Command line

You can run the following commands using the Cloud SDK on your local machine, or in Cloud Shell.

  1. Create the service account. Replace [NAME] with a name for the service account.

    gcloud iam service-accounts create [NAME]
  2. Grant permissions to the service account. Replace [PROJECT_ID] with your project ID.

    gcloud projects add-iam-policy-binding [PROJECT_ID] --member "serviceAccount:[NAME]@[PROJECT_ID].iam.gserviceaccount.com" --role "roles/owner"
    Note: The Role field authorizes your service account to access resources. You can view and change this field later by using GCP Console. If you are developing a production app, specify more granular permissions than Project > Owner. For more information, see granting roles to service accounts.
  3. Generate the key file. Replace [FILE_NAME] with a name for the key file.

    gcloud iam service-accounts keys create [FILE_NAME].json --iam-account [NAME]@[PROJECT_ID].iam.gserviceaccount.com

Provide authentication credentials to your application code by setting the environment variable GOOGLE_APPLICATION_CREDENTIALS. Replace [PATH] with the file path of the JSON file that contains your service account key, and [FILE_NAME] with the filename. This variable only applies to your current shell session, so if you open a new session, set the variable again.

Linux or macOS

export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

For example:

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/[FILE_NAME].json"

Windows

With PowerShell:

$env:GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

For example:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\[FILE_NAME].json"

With command prompt:

set GOOGLE_APPLICATION_CREDENTIALS=[PATH]

클라이언트 라이브러리 사용

다음 예에서는 클라이언트 라이브러리를 사용하는 방법을 보여줍니다.

C#

이 샘플을 시도해 보기 전에 클라이언트 라이브러리를 사용한 BigQuery 데이터 전송 빠른 시작에서 C# 설정 안내를 따르세요. 자세한 내용은 BigQuery 데이터 전송 C# API 참조 문서를 참조하세요.

using System;
using Google.Api.Gax;
using Google.Cloud.BigQuery.DataTransfer.V1;

namespace GoogleCloudSamples
{
    public class QuickStart
    {
        public static void Main(string[] args)
        {
            // Instantiates a client
            DataTransferServiceClient client = DataTransferServiceClient.Create();

            // Your Google Cloud Platform project ID
            string projectId = "YOUR-PROJECT-ID";

            ProjectName project = new ProjectName(projectId);
            var sources = client.ListDataSources(ParentNameOneof.From(project));
            Console.WriteLine("Supported Data Sources:");
            foreach (DataSource source in sources)
            {
                Console.WriteLine(
                    $"{source.DataSourceId}: " +
                    $"{source.DisplayName} ({source.Description})");
            }
        }
    }
}

Go

이 샘플을 시도해 보기 전에 클라이언트 라이브러리를 사용한 BigQuery 데이터 전송 빠른 시작에서 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery 데이터 전송 Go API 참조 문서를 참조하세요.

// Sample bigquery-quickstart creates a Google BigQuery dataset.
package main

import (
	"fmt"
	"log"

	"golang.org/x/net/context"
	"google.golang.org/api/iterator"

	// Imports the BigQuery Data Transfer client package.
	datatransfer "cloud.google.com/go/bigquery/datatransfer/apiv1"
	datatransferpb "google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1"
)

func main() {
	ctx := context.Background()

	// Sets your Google Cloud Platform project ID.
	projectID := "YOUR_PROJECT_ID"

	// Creates a client.
	client, err := datatransfer.NewClient(ctx)
	if err != nil {
		log.Fatalf("Failed to create client: %v", err)
	}

	req := &datatransferpb.ListDataSourcesRequest{
		Parent: fmt.Sprintf("projects/%s", projectID),
	}
	it := client.ListDataSources(ctx, req)
	fmt.Println("Supported Data Sources:")
	for {
		ds, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			log.Fatalf("Failed to list sources: %v", err)
		}
		fmt.Println(ds.DisplayName)
		fmt.Println("\tID: ", ds.DataSourceId)
		fmt.Println("\tFull path: ", ds.Name)
		fmt.Println("\tDescription: ", ds.Description)
	}
}

자바

이 샘플을 시도해 보기 전에 클라이언트 라이브러리를 사용한 BigQuery 데이터 전송 빠른 시작에서 자바 설정 안내를 따르세요. 자세한 내용은 BigQuery 데이터 전송 자바 API 참조 문서를 참조하세요.

// Imports the Google Cloud client library

import com.google.cloud.bigquery.datatransfer.v1.DataSource;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient.ListDataSourcesPagedResponse;
import com.google.cloud.bigquery.datatransfer.v1.ListDataSourcesRequest;

public class QuickstartSample {
  /**
   * List available data sources for the BigQuery Data Transfer service.
   */
  public static void main(String... args) throws Exception {
    // Sets your Google Cloud Platform project ID.
    // String projectId = "YOUR_PROJECT_ID";
    String projectId = args[0];

    // Instantiate a client. If you don't specify credentials when constructing a client, the
    // client library will look for credentials in the environment, such as the
    // GOOGLE_APPLICATION_CREDENTIALS environment variable.
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      // Request the list of available data sources.
      String parent = String.format("projects/%s", projectId);
      ListDataSourcesRequest request =
          ListDataSourcesRequest.newBuilder()
              .setParent(parent)
              .build();
      ListDataSourcesPagedResponse response = client.listDataSources(request);

      // Print the results.
      System.out.println("Supported Data Sources:");
      for (DataSource dataSource : response.iterateAll()) {
        System.out.println(dataSource.getDisplayName());
        System.out.printf("\tID: %s%n", dataSource.getDataSourceId());
        System.out.printf("\tFull path: %s%n", dataSource.getName());
        System.out.printf("\tDescription: %s%n", dataSource.getDescription());
      }
    }
  }
}

Node.js

이 샘플을 시도해 보기 전에 클라이언트 라이브러리를 사용한 BigQuery 데이터 전송 빠른 시작에서 Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery 데이터 전송 Node.js API 참조 문서를 참조하세요.

async function quickstart() {
  const bigqueryDataTransfer = require('@google-cloud/bigquery-data-transfer');
  const client = new bigqueryDataTransfer.v1.DataTransferServiceClient();
  const projectId = await client.getProjectId();

  // Iterate over all elements.
  const formattedParent = client.projectPath(projectId, 'us-central1');
  let nextRequest = {parent: formattedParent};
  const options = {autoPaginate: false};
  console.log('Data sources:');
  do {
    // Fetch the next page.
    const responses = await client.listDataSources(nextRequest, options);
    // The actual resources in a response.
    const resources = responses[0];
    // The next request if the response shows that there are more responses.
    nextRequest = responses[1];
    // The actual response object, if necessary.
    // const rawResponse = responses[2];
    resources.forEach(resource => {
      console.log(`  ${resource.name}`);
    });
  } while (nextRequest);

  console.log('\n\n');
  console.log('Sources via stream:');

  client
    .listDataSourcesStream({parent: formattedParent})
    .on('data', element => {
      console.log(`  ${element.name}`);
    });
}
quickstart().catch(console.error);

PHP

이 샘플을 시도해 보기 전에 클라이언트 라이브러리를 사용한 BigQuery 데이터 전송 빠른 시작에서 PHP 설정 안내를 따르세요. 자세한 내용은 BigQuery 데이터 전송 PHP API 참조 문서를 참조하세요.

# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';

# Imports the Google Cloud client library
use Google\Cloud\BigQuery\DataTransfer\V1\DataTransferServiceClient;

# Instantiates a client
$bqdtsClient = new DataTransferServiceClient();

# Your Google Cloud Platform project ID
$projectId = 'YOUR_PROJECT_ID';
$parent = sprintf('projects/%s/locations/us', $projectId);

try {
    echo 'Supported Data Sources:', PHP_EOL;
    $pagedResponse = $bqdtsClient->listDataSources($parent);
    foreach ($pagedResponse->iterateAllElements() as $dataSource) {
        echo 'Data source: ', $dataSource->getDisplayName(), PHP_EOL;
        echo 'ID: ', $dataSource->getDataSourceId(), PHP_EOL;
        echo 'Full path: ', $dataSource->getName(), PHP_EOL;
        echo 'Description: ', $dataSource->getDescription(), PHP_EOL;
    }
} finally {
    $bqdtsClient->close();
}

Python

이 샘플을 시도해 보기 전에 클라이언트 라이브러리를 사용한 BigQuery 데이터 전송 빠른 시작에서 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery 데이터 전송 Python API 참조 문서를 참조하세요.

from google.cloud import bigquery_datatransfer

client = bigquery_datatransfer.DataTransferServiceClient()

project = 'my-project'  # TODO: Update to your project ID.

# Get the full path to your project.
parent = client.project_path(project)

print('Supported Data Sources:')

# Iterate over all possible data sources.
for data_source in client.list_data_sources(parent):
    print('{}:'.format(data_source.display_name))
    print('\tID: {}'.format(data_source.data_source_id))
    print('\tFull path: {}'.format(data_source.name))
    print('\tDescription: {}'.format(data_source.description))

Ruby

이 샘플을 시도해 보기 전에 클라이언트 라이브러리를 사용한 BigQuery 데이터 전송 빠른 시작에서 Ruby 설정 안내를 따르세요. 자세한 내용 BigQuery 데이터 전송 Ruby API 참조 문서를 참조하세요.

# Imports the Google Cloud client library
require "google/cloud/bigquery/data_transfer"

# Your Google Cloud Platform project ID
project_id = "YOUR_PROJECT_ID"

# Instantiate a client
BigQueryDataTransfer = Google::Cloud::Bigquery::DataTransfer # Alias the module
data_transfer = BigQueryDataTransfer.new

# Get the full path to your project.
project_path = BigQueryDataTransfer::V1::DataTransferServiceClient.project_path(
  project_id
)

puts "Supported Data Sources:"

# Iterate over all possible data sources.
data_transfer.list_data_sources(project_path).each do |data_source|
  puts "Data source: #{data_source.display_name}"
  puts "ID: #{data_source.data_source_id}"
  puts "Full path: #{data_source.name}"
  puts "Description: #{data_source.description}"
end

추가 리소스

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...