Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Puoi usare aws athena
CLI i comandi per gestire i cataloghi di dati dei metastore Hive che usi con Athena. Dopo aver definito uno o più cataloghi da utilizzare con Athena, puoi fare riferimento a tali cataloghi nei aws athena
DDL comandi and. DML
Utilizzo dei cataloghi metastore di AWS CLI Hive per gestire
Registrazione di un catalogo: C reate-data-catalog
Per registrare un catalogo dati, utilizzare il comando create-data-catalog
. Utilizzare il parametro name
per specificare il nome che si desidera utilizzare per il catalogo. Passa ARN la funzione Lambda all'metadata-function
opzione dell'parameters
argomento. Per creare tag per il nuovo catalogo, utilizzare il parametro tags
con una o più coppie di argomenti Key=
separate da spazi.key
,Value=value
Nell'esempio seguente viene registrato il catalogo del metastore Hive denominato hms-catalog-1
. Il comando è stato formattato per la leggibilità.
$ 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
Mostra i dettagli del catalogo: G et-data-catalog
Per visualizzare i dettagli di un catalogo, passare il nome del catalogo al comando get-data-catalog
, come nell'esempio seguente.
$ aws athena get-data-catalog --name "hms-catalog-1" --region us-east-1
Il seguente risultato di esempio è in JSON formato.
{
"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"
}
}
}
Elenco dei cataloghi registrati: L ist-data-catalogs
Per elencare i cataloghi registrati, utilizzare il comando list-data-catalogs
e, facoltativamente, specificare una regione, come nell'esempio seguente. I cataloghi elencati includono sempre AWS Glue.
$ aws athena list-data-catalogs --region us-east-1
Il seguente risultato di esempio è in JSON formato.
{
"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"
}
}
]
}
Aggiornamento di un catalogo: U pdate-data-catalog
Per aggiornare un catalogo dati, utilizzare il comando update-data-catalog
, come nell'esempio seguente. Il comando è stato formattato per la leggibilità.
$ 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
Eliminazione di un catalogo: D elete-data-catalog
Per eliminare un catalogo dati, utilizzare il comando delete-data-catalog
, come nell'esempio seguente.
$ aws athena delete-data-catalog --name "hms-catalog-1" --region us-east-1
Visualizzazione dei dettagli del database: get-database
Per visualizzare i dettagli di un database, passare il nome del catalogo e del database al comando get-database
, come nell'esempio seguente.
$ aws athena get-database --catalog-name hms-catalog-1 --database-name mydb
Il seguente risultato di esempio è in JSON formato.
{
"Database": {
"Name": "mydb",
"Description": "My database",
"Parameters": {
"CreatedBy": "Athena",
"EXTERNAL": "TRUE"
}
}
}
Elencazione dei database in un catalogo: list-databases
Per elencare i database in un catalogo, utilizzare il comando list-databases
e, facoltativamente, specificare una regione, come nell'esempio seguente.
$ aws athena list-databases --catalog-name AwsDataCatalog --region us-west-2
Il seguente risultato di esempio è in JSON formato.
{
"DatabaseList": [
{
"Name": "default"
},
{
"Name": "mycrawlerdatabase"
},
{
"Name": "mydatabase"
},
{
"Name": "sampledb",
"Description": "Sample database",
"Parameters": {
"CreatedBy": "Athena",
"EXTERNAL": "TRUE"
}
},
{
"Name": "tpch100"
}
]
}
Visualizzazione dei dettagli della tabella: G et-table-metadata
Per visualizzare i metadati di una tabella, inclusi i nomi delle colonne e i tipi di dati, passare il nome del catalogo, del database e del nome della tabella al comando get-table-metadata
, come nell'esempio seguente.
$ aws athena get-table-metadata --catalog-name AwsDataCatalog --database-name mydb --table-name cityuseragent
Il seguente risultato di esempio è in JSON formato.
{
"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"
}
}
}
Visualizzazione dei metadati per tutte le tabelle di un database: L ist-table-metadata
Per visualizzare i metadati per tutte le tabelle di un database, passare il nome del catalogo e del nome del database al comando list-table-metadata
. Il comando list-table-metadata
è simile al comando get-table-metadata
, ad eccezione del fatto che non si specifica un nome di tabella. Per limitare il numero di risultati, è possibile utilizzare l'opzione --max-results
, come nell'esempio seguente.
$ aws athena list-table-metadata --catalog-name AwsDataCatalog --database-name sampledb --region us-east-1 --max-results 2
Il seguente risultato di esempio è in JSON formato.
{
"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=="
}
Esecuzione DDL e DML dichiarazioni
Quando si utilizzano le DML istruzioni AWS CLI to run DDL and, è possibile passare il nome del catalogo dei metastore Hive in due modi:
-
Direttamente nelle istruzioni che lo supportano.
-
Al parametro
--query-execution-context
Catalog
.
DDLdichiarazioni
L'esempio seguente passa il nome del catalogo direttamente come parte dell'show create table
DDListruzione. Il comando è stato formattato per la leggibilità.
$ 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"
L'DDLshow create table
istruzione di esempio seguente utilizza il Catalog
parametro di --query-execution-context
per passare il nome del catalogo del metastore Hive. hms-catalog-1
Il comando è stato formattato per la leggibilità.
$ 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"
DMLdichiarazioni
L'DMLselect
istruzione di esempio seguente passa direttamente il nome del catalogo alla query. Il comando è stato formattato per la leggibilità.
$ 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"
L'DMLselect
istruzione di esempio seguente utilizza il Catalog
parametro di --query-execution-context
per passare il nome del catalogo del metastore Hive. hms-catalog-1
Il comando è stato formattato per la leggibilità.
$ 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"