Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan AWS CLI metastores with Hive
Anda dapat menggunakan aws athena
CLI perintah untuk mengelola katalog data metastore Hive yang Anda gunakan dengan Athena. Setelah Anda mendefinisikan satu atau lebih katalog untuk digunakan dengan Athena, Anda dapat mereferensikan katalog tersebut dalam perintah dan Anda. aws athena
DDL DML
Menggunakan AWS CLI untuk mengelola katalog metastore Hive
Mendaftarkan katalog: C reate-data-catalog
Untuk mendaftarkan katalog data, Anda menggunakancreate-data-catalog
Perintah. Gunakanname
Parameter untuk menentukan nama yang ingin Anda gunakan sebagai katalog. Lewati ARN fungsi Lambda ke metadata-function
opsi argumen. parameters
Untuk membuat tanda untuk katalog baru, gunakantags
Parameter dengan satu atau beberapa spasi yang dipisahkanKey=
pasangan argumen.key
,Value=value
Contoh berikut register katalog metastore Hive bernamahms-catalog-1
. Perintah telah diformat untuk dibaca.
$ aws athena create-data-catalog --name "hms-catalog-1" --type "HIVE" --description "Hive Catalog 1" --parameters "metadata-function=arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-v3,sdk-version=1.0" --tags Key=MyKey,Value=MyValue --region us-east-1
Menampilkan rincian katalog: G et-data-catalog
Untuk menampilkan detail katalog, lulus nama katalog untukget-data-catalog
seperti pada contoh berikut.
$ aws athena get-data-catalog --name "hms-catalog-1" --region us-east-1
Hasil sampel berikut dalam JSON format.
{ "DataCatalog": { "Name": "hms-catalog-1", "Description": "Hive Catalog 1", "Type": "HIVE", "Parameters": { "metadata-function": "arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-v3", "sdk-version": "1.0" } } }
Daftar katalog terdaftar: L ist-data-catalogs
Untuk daftar katalog terdaftar, gunakanlist-data-catalogs
dan opsional menentukan wilayah seperti pada contoh berikut. Katalog yang terdaftar selalu mencakup AWS Glue.
$ aws athena list-data-catalogs --region us-east-1
Hasil sampel berikut dalam JSON format.
{ "DataCatalogs": [ { "CatalogName": "AwsDataCatalog", "Type": "GLUE" }, { "CatalogName": "hms-catalog-1", "Type": "HIVE", "Parameters": { "metadata-function": "arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-v3", "sdk-version": "1.0" } } ] }
Memperbarui katalog: U pdate-data-catalog
Untuk memperbarui katalog data, gunakanupdate-data-catalog
seperti pada contoh berikut. Perintah telah diformat untuk dibaca.
$ aws athena update-data-catalog --name "hms-catalog-1" --type "HIVE" --description "My New Hive Catalog Description" --parameters "metadata-function=arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-new,sdk-version=1.0" --region us-east-1
Menghapus katalog: D elete-data-catalog
Untuk menghapus katalog data, gunakandelete-data-catalog
seperti pada contoh berikut.
$ aws athena delete-data-catalog --name "hms-catalog-1" --region us-east-1
Menampilkan rincian database: Get-Database
Untuk menampilkan detail basis data, lulus nama katalog dan basis data untukget-database
seperti pada contoh berikut.
$ aws athena get-database --catalog-name hms-catalog-1 --database-name mydb
Hasil sampel berikut dalam JSON format.
{ "Database": { "Name": "mydb", "Description": "My database", "Parameters": { "CreatedBy": "Athena", "EXTERNAL": "TRUE" } } }
Daftar database dalam katalog: Daftar-database
Untuk daftar basis data dalam katalog, gunakanlist-databases
dan opsional menentukan wilayah seperti pada contoh berikut.
$ aws athena list-databases --catalog-name AwsDataCatalog --region us-west-2
Hasil sampel berikut dalam JSON format.
{ "DatabaseList": [ { "Name": "default" }, { "Name": "mycrawlerdatabase" }, { "Name": "mydatabase" }, { "Name": "sampledb", "Description": "Sample database", "Parameters": { "CreatedBy": "Athena", "EXTERNAL": "TRUE" } }, { "Name": "tpch100" } ] }
Menampilkan detail tabel: G et-table-metadata
Untuk menampilkan metadata untuk tabel, termasuk nama kolom dan tipe data, lulus nama katalog, basis data, dan nama tabel untukget-table-metadata
seperti pada contoh berikut.
$ aws athena get-table-metadata --catalog-name AwsDataCatalog --database-name mydb --table-name cityuseragent
Hasil sampel berikut dalam JSON format.
{ "TableMetadata": { "Name": "cityuseragent", "CreateTime": 1586451276.0, "LastAccessTime": 0.0, "TableType": "EXTERNAL_TABLE", "Columns": [ { "Name": "city", "Type": "string" }, { "Name": "useragent1", "Type": "string" } ], "PartitionKeys": [], "Parameters": { "COLUMN_STATS_ACCURATE": "false", "EXTERNAL": "TRUE", "inputformat": "org.apache.hadoop.mapred.TextInputFormat", "last_modified_by": "hadoop", "last_modified_time": "1586454879", "location": "s3://amzn-s3-demo-bucket/", "numFiles": "1", "numRows": "-1", "outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "rawDataSize": "-1", "serde.param.serialization.format": "1", "serde.serialization.lib": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe", "totalSize": "61" } } }
Menampilkan metadata untuk semua tabel dalam database: L ist-table-metadata
Untuk menampilkan metadata untuk semua tabel dalam basis data, lulus nama katalog dan basis data nama untuklist-table-metadata
Perintah. Parameterlist-table-metadata
serupa denganget-table-metadata
, kecuali bahwa Anda tidak menentukan nama tabel. Untuk membatasi jumlah hasil, Anda dapat menggunakan--max-results
, seperti pada contoh berikut.
$ aws athena list-table-metadata --catalog-name AwsDataCatalog --database-name sampledb --region us-east-1 --max-results 2
Hasil sampel berikut dalam JSON format.
{ "TableMetadataList": [ { "Name": "cityuseragent", "CreateTime": 1586451276.0, "LastAccessTime": 0.0, "TableType": "EXTERNAL_TABLE", "Columns": [ { "Name": "city", "Type": "string" }, { "Name": "useragent1", "Type": "string" } ], "PartitionKeys": [], "Parameters": { "COLUMN_STATS_ACCURATE": "false", "EXTERNAL": "TRUE", "inputformat": "org.apache.hadoop.mapred.TextInputFormat", "last_modified_by": "hadoop", "last_modified_time": "1586454879", "location": "s3://amzn-s3-demo-bucket/", "numFiles": "1", "numRows": "-1", "outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "rawDataSize": "-1", "serde.param.serialization.format": "1", "serde.serialization.lib": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe", "totalSize": "61" } }, { "Name": "clearinghouse_data", "CreateTime": 1589255544.0, "LastAccessTime": 0.0, "TableType": "EXTERNAL_TABLE", "Columns": [ { "Name": "location", "Type": "string" }, { "Name": "stock_count", "Type": "int" }, { "Name": "quantity_shipped", "Type": "int" } ], "PartitionKeys": [], "Parameters": { "EXTERNAL": "TRUE", "inputformat": "org.apache.hadoop.mapred.TextInputFormat", "location": "s3://amzn-s3-demo-bucket/", "outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "serde.param.serialization.format": "1", "serde.serialization.lib": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe", "transient_lastDdlTime": "1589255544" } } ], "NextToken": "eyJsYXN0RXZhbHVhdGVkS2V5Ijp7IkhBU0hfS0VZIjp7InMiOiJ0Ljk0YWZjYjk1MjJjNTQ1YmU4Y2I5OWE5NTg0MjFjYTYzIn0sIlJBTkdFX0tFWSI6eyJzIjoiY2xlYXJpbmdob3VzZV9kYXRhIn19LCJleHBpcmF0aW9uIjp7InNlY29uZHMiOjE1ODkzNDIwMjIsIm5hbm9zIjo2NTUwMDAwMDB9fQ==" }
Berlari DDL dan DML pernyataan
Saat Anda menggunakan AWS CLI to run DDL dan DML statement, Anda dapat meneruskan nama katalog metastore Hive dengan salah satu dari dua cara:
-
Langsung ke pernyataan yang mendukungnya.
-
Ke
--query-execution-context
Catalog
parameter.
DDLpernyataan
Contoh berikut masuk dalam nama katalog secara langsung sebagai bagian dari show create table
DDL pernyataan. Perintah telah diformat untuk dibaca.
$ aws athena start-query-execution --query-string "show create table hms-catalog-1.hms_tpch_partitioned.lineitem" --result-configuration "OutputLocation=s3://amzn-s3-demo-bucket/lambda/results"
DDLshow create table
Pernyataan contoh berikut menggunakan Catalog
parameter --query-execution-context
untuk meneruskan nama katalog metastore Hive. hms-catalog-1
Perintah telah diformat untuk dibaca.
$ aws athena start-query-execution --query-string "show create table lineitem" --query-execution-context "Catalog=hms-catalog-1,Database=hms_tpch_partitioned" --result-configuration "OutputLocation=s3://amzn-s3-demo-bucket/lambda/results"
DMLpernyataan
DMLselect
Pernyataan contoh berikut meneruskan nama katalog ke dalam query secara langsung. Perintah telah diformat untuk dibaca.
$ aws athena start-query-execution --query-string "select * from hms-catalog-1.hms_tpch_partitioned.customer limit 100" --result-configuration "OutputLocation=s3://amzn-s3-demo-bucket/lambda/results"
DMLselect
Pernyataan contoh berikut menggunakan Catalog
parameter --query-execution-context
untuk meneruskan nama katalog metastore Hive. hms-catalog-1
Perintah telah diformat untuk dibaca.
$ aws athena start-query-execution --query-string "select * from customer limit 100" --query-execution-context "Catalog=hms-catalog-1,Database=hms_tpch_partitioned" --result-configuration "OutputLocation=s3://amzn-s3-demo-bucket/lambda/results"