Amazon Athena

2019/08/15 - Amazon Athena - 3 updated api methods

Changes  This release adds support for querying S3 Requester Pays buckets. Users can enable this feature through their Workgroup settings.

CreateWorkGroup (updated) Link ¶
Changes (request)
{'Configuration': {'RequesterPaysEnabled': 'boolean'}}

Creates a workgroup with the specified name.

See also: AWS API Documentation

Request Syntax

client.create_work_group(
    Name='string',
    Configuration={
        'ResultConfiguration': {
            'OutputLocation': 'string',
            'EncryptionConfiguration': {
                'EncryptionOption': 'SSE_S3'|'SSE_KMS'|'CSE_KMS',
                'KmsKey': 'string'
            }
        },
        'EnforceWorkGroupConfiguration': True|False,
        'PublishCloudWatchMetricsEnabled': True|False,
        'BytesScannedCutoffPerQuery': 123,
        'RequesterPaysEnabled': True|False
    },
    Description='string',
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ]
)
type Name

string

param Name

[REQUIRED]

The workgroup name.

type Configuration

dict

param Configuration

The configuration for the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption configuration, if any, used for encrypting query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, the limit for the amount of bytes scanned (cutoff) per query, if it is specified, and whether workgroup's settings (specified with EnforceWorkGroupConfiguration) in the WorkGroupConfiguration override client-side settings. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

  • ResultConfiguration (dict) --

    The configuration for the workgroup, which includes the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. To run the query, you must specify the query results location using one of the ways: either in the workgroup using this setting, or for individual queries (client-side), using ResultConfiguration$OutputLocation. If none of them is set, Athena issues an error that no output location is provided. For more information, see Query Results.

    • OutputLocation (string) --

      The location in Amazon S3 where your query results are stored, such as s3://path/to/query/bucket/ . To run the query, you must specify the query results location using one of the ways: either for individual queries using either this setting (client-side), or in the workgroup, using WorkGroupConfiguration. If none of them is set, Athena issues an error that no output location is provided. For more information, see Query Results. If workgroup settings override client-side settings, then the query uses the settings specified for the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

    • EncryptionConfiguration (dict) --

      If query results are encrypted in Amazon S3, indicates the encryption option used (for example, SSE-KMS or CSE-KMS ) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

      • EncryptionOption (string) -- [REQUIRED]

        Indicates whether Amazon S3 server-side encryption with Amazon S3-managed keys ( SSE-S3 ), server-side encryption with KMS-managed keys ( SSE-KMS ), or client-side encryption with KMS-managed keys (CSE-KMS) is used.

        If a query runs in a workgroup and the workgroup overrides client-side settings, then the workgroup's setting for encryption is used. It specifies whether query results must be encrypted, for all queries that run in this workgroup.

      • KmsKey (string) --

        For SSE-KMS and CSE-KMS , this is the KMS key ARN or ID.

  • EnforceWorkGroupConfiguration (boolean) --

    If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side settings are used. For more information, see Workgroup Settings Override Client-Side Settings.

  • PublishCloudWatchMetricsEnabled (boolean) --

    Indicates that the Amazon CloudWatch metrics are enabled for the workgroup.

  • BytesScannedCutoffPerQuery (integer) --

    The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan.

  • RequesterPaysEnabled (boolean) --

    If set to true , allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries. If set to false , workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is false . For more information about Requester Pays buckets, see Requester Pays Buckets in the Amazon Simple Storage Service Developer Guide .

type Description

string

param Description

The workgroup description.

type Tags

list

param Tags

One or more tags, separated by commas, that you want to attach to the workgroup as you create it.

  • (dict) --

    A tag that you can add to a resource. A tag is a label that you assign to an AWS Athena resource (a workgroup). Each tag consists of a key and an optional value, both of which you define. Tags enable you to categorize workgroups in Athena, for example, by purpose, owner, or environment. Use a consistent set of tag keys to make it easier to search and filter workgroups in your account. The maximum tag key length is 128 Unicode characters in UTF-8. The maximum tag value length is 256 Unicode characters in UTF-8. You 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.

    • Key (string) --

      A tag key. The tag key length is from 1 to 128 Unicode characters in UTF-8. You can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys are case-sensitive and must be unique per resource.

    • Value (string) --

      A tag value. The tag value length is from 0 to 256 Unicode characters in UTF-8. You can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag values are case-sensitive.

rtype

dict

returns

Response Syntax

{}

Response Structure

  • (dict) --

GetWorkGroup (updated) Link ¶
Changes (response)
{'WorkGroup': {'Configuration': {'RequesterPaysEnabled': 'boolean'}}}

Returns information about the workgroup with the specified name.

See also: AWS API Documentation

Request Syntax

client.get_work_group(
    WorkGroup='string'
)
type WorkGroup

string

param WorkGroup

[REQUIRED]

The name of the workgroup.

rtype

dict

returns

Response Syntax

{
    'WorkGroup': {
        'Name': 'string',
        'State': 'ENABLED'|'DISABLED',
        'Configuration': {
            'ResultConfiguration': {
                'OutputLocation': 'string',
                'EncryptionConfiguration': {
                    'EncryptionOption': 'SSE_S3'|'SSE_KMS'|'CSE_KMS',
                    'KmsKey': 'string'
                }
            },
            'EnforceWorkGroupConfiguration': True|False,
            'PublishCloudWatchMetricsEnabled': True|False,
            'BytesScannedCutoffPerQuery': 123,
            'RequesterPaysEnabled': True|False
        },
        'Description': 'string',
        'CreationTime': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • WorkGroup (dict) --

      Information about the workgroup.

      • Name (string) --

        The workgroup name.

      • State (string) --

        The state of the workgroup: ENABLED or DISABLED.

      • Configuration (dict) --

        The configuration of the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption configuration, if any, used for query results; whether the Amazon CloudWatch Metrics are enabled for the workgroup; whether workgroup settings override client-side settings; and the data usage limits for the amount of data scanned per query or per workgroup. The workgroup settings override is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

        • ResultConfiguration (dict) --

          The configuration for the workgroup, which includes the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. To run the query, you must specify the query results location using one of the ways: either in the workgroup using this setting, or for individual queries (client-side), using ResultConfiguration$OutputLocation. If none of them is set, Athena issues an error that no output location is provided. For more information, see Query Results.

          • OutputLocation (string) --

            The location in Amazon S3 where your query results are stored, such as s3://path/to/query/bucket/ . To run the query, you must specify the query results location using one of the ways: either for individual queries using either this setting (client-side), or in the workgroup, using WorkGroupConfiguration. If none of them is set, Athena issues an error that no output location is provided. For more information, see Query Results. If workgroup settings override client-side settings, then the query uses the settings specified for the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

          • EncryptionConfiguration (dict) --

            If query results are encrypted in Amazon S3, indicates the encryption option used (for example, SSE-KMS or CSE-KMS ) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

            • EncryptionOption (string) --

              Indicates whether Amazon S3 server-side encryption with Amazon S3-managed keys ( SSE-S3 ), server-side encryption with KMS-managed keys ( SSE-KMS ), or client-side encryption with KMS-managed keys (CSE-KMS) is used.

              If a query runs in a workgroup and the workgroup overrides client-side settings, then the workgroup's setting for encryption is used. It specifies whether query results must be encrypted, for all queries that run in this workgroup.

            • KmsKey (string) --

              For SSE-KMS and CSE-KMS , this is the KMS key ARN or ID.

        • EnforceWorkGroupConfiguration (boolean) --

          If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side settings are used. For more information, see Workgroup Settings Override Client-Side Settings.

        • PublishCloudWatchMetricsEnabled (boolean) --

          Indicates that the Amazon CloudWatch metrics are enabled for the workgroup.

        • BytesScannedCutoffPerQuery (integer) --

          The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan.

        • RequesterPaysEnabled (boolean) --

          If set to true , allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries. If set to false , workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is false . For more information about Requester Pays buckets, see Requester Pays Buckets in the Amazon Simple Storage Service Developer Guide .

      • Description (string) --

        The workgroup description.

      • CreationTime (datetime) --

        The date and time the workgroup was created.

UpdateWorkGroup (updated) Link ¶
Changes (request)
{'ConfigurationUpdates': {'RequesterPaysEnabled': 'boolean'}}

Updates the workgroup with the specified name. The workgroup's name cannot be changed.

See also: AWS API Documentation

Request Syntax

client.update_work_group(
    WorkGroup='string',
    Description='string',
    ConfigurationUpdates={
        'EnforceWorkGroupConfiguration': True|False,
        'ResultConfigurationUpdates': {
            'OutputLocation': 'string',
            'RemoveOutputLocation': True|False,
            'EncryptionConfiguration': {
                'EncryptionOption': 'SSE_S3'|'SSE_KMS'|'CSE_KMS',
                'KmsKey': 'string'
            },
            'RemoveEncryptionConfiguration': True|False
        },
        'PublishCloudWatchMetricsEnabled': True|False,
        'BytesScannedCutoffPerQuery': 123,
        'RemoveBytesScannedCutoffPerQuery': True|False,
        'RequesterPaysEnabled': True|False
    },
    State='ENABLED'|'DISABLED'
)
type WorkGroup

string

param WorkGroup

[REQUIRED]

The specified workgroup that will be updated.

type Description

string

param Description

The workgroup description.

type ConfigurationUpdates

dict

param ConfigurationUpdates

The workgroup configuration that will be updated for the given workgroup.

  • EnforceWorkGroupConfiguration (boolean) --

    If set to "true", the settings for the workgroup override client-side settings. If set to "false" client-side settings are used. For more information, see Workgroup Settings Override Client-Side Settings.

  • ResultConfigurationUpdates (dict) --

    The result configuration information about the queries in this workgroup that will be updated. Includes the updated results location and an updated option for encrypting query results.

    • OutputLocation (string) --

      The location in Amazon S3 where your query results are stored, such as s3://path/to/query/bucket/ . For more information, see Query Results If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup. The "workgroup settings override" is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

    • RemoveOutputLocation (boolean) --

      If set to "true", indicates that the previously-specified query results location (also known as a client-side setting) for queries in this workgroup should be ignored and set to null. If set to "false" or not set, and a value is present in the OutputLocation in ResultConfigurationUpdates (the client-side setting), the OutputLocation in the workgroup's ResultConfiguration will be updated with the new value. For more information, see Workgroup Settings Override Client-Side Settings.

    • EncryptionConfiguration (dict) --

      The encryption configuration for the query results.

      • EncryptionOption (string) -- [REQUIRED]

        Indicates whether Amazon S3 server-side encryption with Amazon S3-managed keys ( SSE-S3 ), server-side encryption with KMS-managed keys ( SSE-KMS ), or client-side encryption with KMS-managed keys (CSE-KMS) is used.

        If a query runs in a workgroup and the workgroup overrides client-side settings, then the workgroup's setting for encryption is used. It specifies whether query results must be encrypted, for all queries that run in this workgroup.

      • KmsKey (string) --

        For SSE-KMS and CSE-KMS , this is the KMS key ARN or ID.

    • RemoveEncryptionConfiguration (boolean) --

      If set to "true", indicates that the previously-specified encryption configuration (also known as the client-side setting) for queries in this workgroup should be ignored and set to null. If set to "false" or not set, and a value is present in the EncryptionConfiguration in ResultConfigurationUpdates (the client-side setting), the EncryptionConfiguration in the workgroup's ResultConfiguration will be updated with the new value. For more information, see Workgroup Settings Override Client-Side Settings.

  • PublishCloudWatchMetricsEnabled (boolean) --

    Indicates whether this workgroup enables publishing metrics to Amazon CloudWatch.

  • BytesScannedCutoffPerQuery (integer) --

    The upper limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan.

  • RemoveBytesScannedCutoffPerQuery (boolean) --

    Indicates that the data usage control limit per query is removed. WorkGroupConfiguration$BytesScannedCutoffPerQuery

  • RequesterPaysEnabled (boolean) --

    If set to true , allows members assigned to a workgroup to specify Amazon S3 Requester Pays buckets in queries. If set to false , workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is false . For more information about Requester Pays buckets, see Requester Pays Buckets in the Amazon Simple Storage Service Developer Guide .

type State

string

param State

The workgroup state that will be updated for the given workgroup.

rtype

dict

returns

Response Syntax

{}

Response Structure

  • (dict) --