Как использовать клей / Athena / Quicksight с CloudFormation - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть некоторые данные в S3, я создал схему в каталоге Glue и затем открыл ее для QuickSight через Athena.Все это прекрасно работает, когда я создаю его, нажимая в консоли.

Затем я преобразую его в следующее CloudFormation:

AnalyticsDatabase:
  Type: AWS::Glue::Database
  Properties:
    DatabaseInput: 
      Name: analytics
    CatalogId: !Ref AWS::AccountId
RawAnalysisAnalyticsTable:
  Type: AWS::Glue::Table
  Properties:
    DatabaseName: !Ref AnalyticsDatabase
    CatalogId: !Ref AWS::AccountId
    TableInput:
      Name: analysis_raw
      TableType: EXTERNAL_TABLE
      Parameters:
        classification: json
      StorageDescriptor:
        Columns:
          - {Name: id, Type: string}
          - {Name: treeid, Type: string}
          - {Name: patientid, Type: string}
        Compressed: false
        InputFormat: org.apache.hadoop.mapred.TextInputFormat
        OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
        Location: s3://my-bucket/dynamodb/Analysis/
        NumberOfBuckets: 0
        SerdeInfo:
          Parameters: {paths: 'id,patientid,treeid'}
          SerializationLibrary: org.openx.data.jsonserde.JsonSerDe
        SortColumns: []
        StoredAsSubDirectories: false

Однако, когда я пытаюсь вытянуть созданную CF таблицув QuickSight я получаю:

Your database generated a SQL exception. This can be caused by query timeouts, resource constraints, unexpected DDL alterations before or during a query, and other database errors. Check your database settings and your query, and try again.

region:             us-east-1
timestamp:          1544113019756
requestId:          5ab8f9a2-f972-11e8-b201-154c30728c75
sourceErrorCode:    0
sourceErrorMessage: [Simba][JDBC](11380) Null pointer exception.
sourceErrorState:   HY000
sourceException:    java.sql.SQLException
sourceType:         ATHENA

Кто-нибудь знает, что означает эта ошибка или как я могу устранить ее?Я сравнил все свойства таблицы, созданной вручную, с таблицей, созданной в CloudFormation, и они кажутся идентичными.

1 Ответ

0 голосов
/ 19 июля 2019

Макс должен ответить здесь.Это единственное решение, которое сработало, - добавить параметр PartitionKeys: [].Я изначально добавил его как дочерний элемент или StorageDescription, который не работал.Должен быть добавлен на дочернем уровне TableInput, как указано в документации.Это правильный ответ, потому что ни одно из перечисленных здесь условий (безопасность и т. Д.) Не даст исключение NullPointerException, на которое есть ссылка в вопросе.

...