데이터 읽기
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Apache Beam을 사용해 Cloud Bigtable에서 데이터를 읽습니다.
더 살펴보기
이 코드 샘플이 포함된 자세한 문서는 다음을 참조하세요.
코드 샘플
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],[],[[["\u003cp\u003eThis code sample demonstrates how to read data from Cloud Bigtable using Apache Beam.\u003c/p\u003e\n"],["\u003cp\u003eThe example uses the \u003ccode\u003eCloudBigtableIO\u003c/code\u003e class to configure and perform the read operation with a specified scan.\u003c/p\u003e\n"],["\u003cp\u003eIt utilizes a \u003ccode\u003eScan\u003c/code\u003e object with a \u003ccode\u003eFirstKeyOnlyFilter\u003c/code\u003e to optimize the data retrieval process, setting cache blocks to false.\u003c/p\u003e\n"],["\u003cp\u003eThe pipeline reads the results from Bigtable and processes each row, printing the row key to the console, using a \u003ccode\u003eDoFn\u003c/code\u003e to apply a custom transformation.\u003c/p\u003e\n"],["\u003cp\u003eThe required configuration parameters for Bigtable, such as project ID, instance ID, and table ID, are provided through the \u003ccode\u003eBigtableOptions\u003c/code\u003e interface, which extends \u003ccode\u003eDataflowPipelineOptions\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Read data from Cloud Bigtable with Apache Beam.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Bigtable HBase Beam connector](/bigtable/docs/hbase-dataflow-java)\n\nCode sample\n-----------\n\n### Java\n\n\nTo learn how to install and use the client library for Bigtable, see\n[Bigtable client libraries](/bigtable/docs/reference/libraries).\n\n\nTo authenticate to Bigtable, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n import com.google.cloud.bigtable.beam.CloudBigtableIO;\n import com.google.cloud.bigtable.beam.CloudBigtableScanConfiguration;\n import org.apache.beam.runners.dataflow.options.DataflowPipelineOptions;\n import org.apache.beam.sdk.Pipeline;\n import org.apache.beam.sdk.io.Read;\n import org.apache.beam.sdk.options.Default;\n import org.apache.beam.sdk.options.Description;\n import org.apache.beam.sdk.options.PipelineOptionsFactory;\n import org.apache.beam.sdk.transforms.DoFn;\n import org.apache.beam.sdk.transforms.ParDo;\n import org.apache.hadoop.hbase.client.Result;\n import org.apache.hadoop.hbase.client.Scan;\n import org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter;\n import org.apache.hadoop.hbase.util.Bytes;\n\n public class HelloWorldRead {\n public static void main(String[] args) {\n BigtableOptions options =\n PipelineOptionsFactory.fromArgs(args).withValidation().as(BigtableOptions.class);\n Pipeline p = Pipeline.create(options);\n\n Scan scan = new Scan();\n scan.setCacheBlocks(false);\n scan.setFilter(new FirstKeyOnlyFilter());\n\n CloudBigtableScanConfiguration config =\n new CloudBigtableScanConfiguration.Builder()\n .withProjectId(options.getBigtableProjectId())\n .withInstanceId(options.getBigtableInstanceId())\n .withTableId(options.getBigtableTableId())\n .withScan(scan)\n .build();\n\n p.apply(Read.from(CloudBigtableIO.read(config)))\n .apply(\n ParDo.of(\n new DoFn\u003cResult, Void\u003e() {\n @ProcessElement\n public void processElement(@Element Result row, OutputReceiver\u003cVoid\u003e out) {\n System.out.println(Bytes.toString(row.getRow()));\n }\n }));\n\n p.run().waitUntilFinish();\n }\n\n public interface BigtableOptions extends DataflowPipelineOptions {\n @Description(\"The Bigtable project ID, this can be different than your Dataflow project\")\n @Default.String(\"bigtable-project\")\n String getBigtableProjectId();\n\n void setBigtableProjectId(String bigtableProjectId);\n\n @Description(\"The Bigtable instance ID\")\n @Default.String(\"bigtable-instance\")\n String getBigtableInstanceId();\n\n void setBigtableInstanceId(String bigtableInstanceId);\n\n @Description(\"The Bigtable table ID in the instance.\")\n @Default.String(\"mobile-time-series\")\n String getBigtableTableId();\n\n void setBigtableTableId(String bigtableTableId);\n }\n }\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=bigtable)."]]