You are viewing documentation for version 2 of the AWS SDK for Ruby. Version 3 documentation can be found here.
Class: Aws::Athena::Client
- Inherits:
-
Seahorse::Client::Base
- Object
- Seahorse::Client::Base
- Aws::Athena::Client
- Defined in:
- (unknown)
Overview
An API client for Amazon Athena. To construct a client, you need to configure a :region
and :credentials
.
athena = Aws::Athena::Client.new(
region: region_name,
credentials: credentials,
# ...
)
See #initialize for a full list of supported configuration options.
Region
You can configure a default region in the following locations:
ENV['AWS_REGION']
Aws.config[:region]
Go here for a list of supported regions.
Credentials
Default credentials are loaded automatically from the following locations:
ENV['AWS_ACCESS_KEY_ID']
andENV['AWS_SECRET_ACCESS_KEY']
Aws.config[:credentials]
- The shared credentials ini file at
~/.aws/credentials
(more information) - From an instance profile when running on EC2
You can also construct a credentials object from one of the following classes:
Alternatively, you configure credentials with :access_key_id
and
:secret_access_key
:
# load credentials from disk
creds = YAML.load(File.read('/path/to/secrets'))
Aws::Athena::Client.new(
access_key_id: creds['access_key_id'],
secret_access_key: creds['secret_access_key']
)
Always load your credentials from outside your application. Avoid configuring credentials statically and never commit them to source control.
Instance Attribute Summary
Attributes inherited from Seahorse::Client::Base
Constructor collapse
-
#initialize(options = {}) ⇒ Aws::Athena::Client
constructor
Constructs an API client.
API Operations collapse
-
#batch_get_named_query(options = {}) ⇒ Types::BatchGetNamedQueryOutput
Returns the details of a single named query or a list of up to 50 queries, which you provide as an array of query ID strings.
-
#batch_get_query_execution(options = {}) ⇒ Types::BatchGetQueryExecutionOutput
Returns the details of a single query execution or a list of up to 50 query executions, which you provide as an array of query execution ID strings.
-
#create_data_catalog(options = {}) ⇒ Struct
Creates (registers) a data catalog with the specified name and properties.
-
#create_named_query(options = {}) ⇒ Types::CreateNamedQueryOutput
Creates a named query in the specified workgroup.
-
#create_work_group(options = {}) ⇒ Struct
Creates a workgroup with the specified name.
.
-
#delete_data_catalog(options = {}) ⇒ Struct
Deletes a data catalog.
.
-
#delete_named_query(options = {}) ⇒ Struct
Deletes the named query if you have access to the workgroup in which the query was saved.
For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide.
. -
#delete_work_group(options = {}) ⇒ Struct
Deletes the workgroup with the specified name.
-
#get_data_catalog(options = {}) ⇒ Types::GetDataCatalogOutput
Returns the specified data catalog.
.
-
#get_database(options = {}) ⇒ Types::GetDatabaseOutput
Returns a database object for the specfied database and data catalog.
.
-
#get_named_query(options = {}) ⇒ Types::GetNamedQueryOutput
Returns information about a single query.
-
#get_query_execution(options = {}) ⇒ Types::GetQueryExecutionOutput
Returns information about a single execution of a query if you have access to the workgroup in which the query ran.
-
#get_query_results(options = {}) ⇒ Types::GetQueryResultsOutput
Streams the results of a single query execution specified by
QueryExecutionId
from the Athena query results location in Amazon S3. -
#get_table_metadata(options = {}) ⇒ Types::GetTableMetadataOutput
Returns table metadata for the specified catalog, database, and table.
.
-
#get_work_group(options = {}) ⇒ Types::GetWorkGroupOutput
Returns information about the workgroup with the specified name.
.
-
#list_data_catalogs(options = {}) ⇒ Types::ListDataCatalogsOutput
Lists the data catalogs in the current AWS account.
.
-
#list_databases(options = {}) ⇒ Types::ListDatabasesOutput
Lists the databases in the specified data catalog.
.
-
#list_named_queries(options = {}) ⇒ Types::ListNamedQueriesOutput
Provides a list of available query IDs only for queries saved in the specified workgroup.
-
#list_query_executions(options = {}) ⇒ Types::ListQueryExecutionsOutput
Provides a list of available query execution IDs for the queries in the specified workgroup.
-
#list_table_metadata(options = {}) ⇒ Types::ListTableMetadataOutput
Lists the metadata for the tables in the specified data catalog database.
.
-
#list_tags_for_resource(options = {}) ⇒ Types::ListTagsForResourceOutput
Lists the tags associated with an Athena workgroup or data catalog resource.
.
-
#list_work_groups(options = {}) ⇒ Types::ListWorkGroupsOutput
Lists available workgroups for the account.
.
-
#start_query_execution(options = {}) ⇒ Types::StartQueryExecutionOutput
Runs the SQL query statements contained in the
Query
. -
#stop_query_execution(options = {}) ⇒ Struct
Stops a query execution.
-
#tag_resource(options = {}) ⇒ Struct
Adds one or more tags to an Athena resource.
-
#untag_resource(options = {}) ⇒ Struct
Removes one or more tags from a data catalog or workgroup resource.
.
-
#update_data_catalog(options = {}) ⇒ Struct
Updates the data catalog that has the specified name.
.
-
#update_work_group(options = {}) ⇒ Struct
Updates the workgroup with the specified name.
Instance Method Summary collapse
-
#wait_until(waiter_name, params = {}) {|waiter| ... } ⇒ Boolean
Waiters polls an API operation until a resource enters a desired state.
-
#waiter_names ⇒ Array<Symbol>
Returns the list of supported waiters.
Methods inherited from Seahorse::Client::Base
add_plugin, api, #build_request, clear_plugins, define, new, #operation, #operation_names, plugins, remove_plugin, set_api, set_plugins
Methods included from Seahorse::Client::HandlerBuilder
#handle, #handle_request, #handle_response
Constructor Details
#initialize(options = {}) ⇒ Aws::Athena::Client
Constructs an API client.
Instance Method Details
#batch_get_named_query(options = {}) ⇒ Types::BatchGetNamedQueryOutput
Returns the details of a single named query or a list of up to 50 queries, which you provide as an array of query ID strings. Requires you to have access to the workgroup in which the queries were saved. Use ListNamedQueriesInput to get the list of named query IDs in the specified workgroup. If information could not be retrieved for a submitted query ID, information about the query ID submitted is listed under UnprocessedNamedQueryId. Named queries differ from executed queries. Use BatchGetQueryExecutionInput to get details about each unique query execution, and ListQueryExecutionsInput to get a list of query execution IDs.
#batch_get_query_execution(options = {}) ⇒ Types::BatchGetQueryExecutionOutput
Returns the details of a single query execution or a list of up to 50 query executions, which you provide as an array of query execution ID strings. Requires you to have access to the workgroup in which the queries ran. To get a list of query execution IDs, use ListQueryExecutionsInput$WorkGroup. Query executions differ from named (saved) queries. Use BatchGetNamedQueryInput to get details about named queries.
#create_data_catalog(options = {}) ⇒ Struct
Creates (registers) a data catalog with the specified name and properties. Catalogs created are visible to all users of the same AWS account.
#create_named_query(options = {}) ⇒ Types::CreateNamedQueryOutput
Creates a named query in the specified workgroup. Requires that you have access to the workgroup.
For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide.
#create_work_group(options = {}) ⇒ Struct
Creates a workgroup with the specified name.
#delete_data_catalog(options = {}) ⇒ Struct
Deletes a data catalog.
#delete_named_query(options = {}) ⇒ Struct
Deletes the named query if you have access to the workgroup in which the query was saved.
For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide.
#delete_work_group(options = {}) ⇒ Struct
Deletes the workgroup with the specified name. The primary workgroup cannot be deleted.
#get_data_catalog(options = {}) ⇒ Types::GetDataCatalogOutput
Returns the specified data catalog.
#get_database(options = {}) ⇒ Types::GetDatabaseOutput
Returns a database object for the specfied database and data catalog.
#get_named_query(options = {}) ⇒ Types::GetNamedQueryOutput
Returns information about a single query. Requires that you have access to the workgroup in which the query was saved.
#get_query_execution(options = {}) ⇒ Types::GetQueryExecutionOutput
Returns information about a single execution of a query if you have access to the workgroup in which the query ran. Each time a query executes, information about the query execution is saved with a unique ID.
#get_query_results(options = {}) ⇒ Types::GetQueryResultsOutput
Streams the results of a single query execution specified by QueryExecutionId
from the Athena query results location in Amazon S3. For more information, see Query Results in the Amazon Athena User Guide. This request does not execute the query but returns results. Use StartQueryExecution to run a query.
To stream query results successfully, the IAM principal with permission to call GetQueryResults
also must have permissions to the Amazon S3 GetObject
action for the Athena query results location.
IAM principals with permission to the Amazon S3 GetObject
action for the query results location are able to retrieve query results from Amazon S3 even if permission to the GetQueryResults
action is denied. To restrict user or role access, ensure that Amazon S3 permissions to the Athena query location are denied.
#get_table_metadata(options = {}) ⇒ Types::GetTableMetadataOutput
Returns table metadata for the specified catalog, database, and table.
#get_work_group(options = {}) ⇒ Types::GetWorkGroupOutput
Returns information about the workgroup with the specified name.
#list_data_catalogs(options = {}) ⇒ Types::ListDataCatalogsOutput
Lists the data catalogs in the current AWS account.
#list_databases(options = {}) ⇒ Types::ListDatabasesOutput
Lists the databases in the specified data catalog.
#list_named_queries(options = {}) ⇒ Types::ListNamedQueriesOutput
Provides a list of available query IDs only for queries saved in the specified workgroup. Requires that you have access to the specified workgroup. If a workgroup is not specified, lists the saved queries for the primary workgroup.
For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide.
#list_query_executions(options = {}) ⇒ Types::ListQueryExecutionsOutput
Provides a list of available query execution IDs for the queries in the specified workgroup. If a workgroup is not specified, returns a list of query execution IDs for the primary workgroup. Requires you to have access to the workgroup in which the queries ran.
For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide.
#list_table_metadata(options = {}) ⇒ Types::ListTableMetadataOutput
Lists the metadata for the tables in the specified data catalog database.
#list_tags_for_resource(options = {}) ⇒ Types::ListTagsForResourceOutput
Lists the tags associated with an Athena workgroup or data catalog resource.
#list_work_groups(options = {}) ⇒ Types::ListWorkGroupsOutput
Lists available workgroups for the account.
#start_query_execution(options = {}) ⇒ Types::StartQueryExecutionOutput
Runs the SQL query statements contained in the Query
. Requires you to have access to the workgroup in which the query ran. Running queries against an external catalog requires GetDataCatalog permission to the catalog. For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide.
#stop_query_execution(options = {}) ⇒ Struct
Stops a query execution. Requires you to have access to the workgroup in which the query ran.
For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide.
#tag_resource(options = {}) ⇒ Struct
Adds one or more tags to an Athena resource. A tag is a label that you assign to a resource. In Athena, a resource can be a workgroup or data catalog. Each tag consists of a key and an optional value, both of which you define. For example, you can use tags to categorize Athena workgroups or data catalogs by purpose, owner, or environment. Use a consistent set of tag keys to make it easier to search and filter workgroups or data catalogs in your account. For best practices, see Tagging Best Practices. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. If you specify more than one tag, separate them by commas.
#untag_resource(options = {}) ⇒ Struct
Removes one or more tags from a data catalog or workgroup resource.
#update_data_catalog(options = {}) ⇒ Struct
Updates the data catalog that has the specified name.
#update_work_group(options = {}) ⇒ Struct
Updates the workgroup with the specified name. The workgroup's name cannot be changed.
#wait_until(waiter_name, params = {}) {|waiter| ... } ⇒ Boolean
Waiters polls an API operation until a resource enters a desired state.
Basic Usage
Waiters will poll until they are succesful, they fail by entering a terminal state, or until a maximum number of attempts are made.
# polls in a loop, sleeping between attempts client.waiter_until(waiter_name, params)
Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. You configure waiters by passing a block to #wait_until:
# poll for ~25 seconds
client.wait_until(...) do |w|
w.max_attempts = 5
w.delay = 5
end
Callbacks
You can be notified before each polling attempt and before each
delay. If you throw :success
or :failure
from these callbacks,
it will terminate the waiter.
started_at = Time.now
client.wait_until(...) do |w|
# disable max attempts
w.max_attempts = nil
# poll for 1 hour, instead of a number of attempts
w.before_wait do |attempts, response|
throw :failure if Time.now - started_at > 3600
end
end
Handling Errors
When a waiter is successful, it returns true
. When a waiter
fails, it raises an error. All errors raised extend from
Waiters::Errors::WaiterFailed.
begin
client.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
# resource did not enter the desired state in time
end
#waiter_names ⇒ Array<Symbol>
Returns the list of supported waiters. The following table lists the supported waiters and the client method they call:
Waiter Name | Client Method | Default Delay: | Default Max Attempts: |
---|