As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Gerenciamento de metadados do Iceberg
Quando você cria um grupo de recursos com o formato de tabela Iceberg, a Amazon SageMaker Feature Store cria e gerencia a tabela Iceberg subjacente em seu nome usando valores de configuração padrão. Você pode configurar as propriedades da tabela Iceberg na criação do grupo de recursos, atualizar propriedades em um grupo de recursos existente e visualizar as propriedades atualmente definidas na tabela. Essas configurações oferecem controle sobre os parâmetros de configuração, como retenção de instantâneos, gerenciamento de arquivos de metadados e comportamento de gravação para gerenciar o tamanho geral e o desempenho da tabela de sua loja offline.
Somente um subconjunto das propriedades da tabela Iceberg foi validado para compatibilidade com o Feature Store. A configuração de propriedades fora desse conjunto suportado não garante o comportamento correto. Para obter a lista completa das propriedades compatíveis, consultePropriedades permitidas do Iceberg.
Pré-requisito: Seu grupo de recursos deve ter uma loja off-line usando o formato de tabela Iceberg.
Importante
Se as propriedades não permitidas do Iceberg forem alteradas, a Feature Store não poderá garantir a compatibilidade contínua e poderá levar à incapacidade de escrever para a loja offline.
IcebergProperties digitar
O IcebergProperties tipo fornece um invólucro validado para as configurações de propriedades do Iceberg, garantindo que todas as chaves pertençam ao conjunto permitido e evitando entradas duplicadas.
class IcebergProperties(Base): """Configuration for Iceberg table properties in a Feature Group offline store.""" properties: Optional[Dict[str, str]] = None
Validando propriedades
Chaves inválidas e duplicadas resultam em um erro quando passadas para a função de criação ou atualização. Opcionalmente, você pode validar as chaves usando o validate_property_keys() método. Isso é útil ao adicionar ou remover propriedades de um IcebergProperties objeto existente.
iceberg_properties = IcebergProperties( # Validates on creation properties={ "write.target-file-size-bytes": "268435456", "write.delete.mode": "merge-on-read", } ) # Add non-allowed property iceberg_properties.properties.update({"write.delete.isolation-level": "Snapshot"}) # Validate again — throws error because of non-allowed property iceberg_properties.validate_property_keys()
Crie um grupo de recursos com propriedades do Iceberg
A FeatureGroupManager.create função aceita um iceberg_properties parâmetro do tipoIcebergProperties. Ele cria um grupo de recursos e aguarda a conclusão da criação antes de atualizar as propriedades do Iceberg na tabela subjacente AWS Glue .
Como alternativa, você pode criar uma chamada FeatureGroupcreate, depois passar o objeto do grupo de recursos para a FeatureGroupManager classe e chamar update para evitar o bloqueio enquanto o grupo de recursos termina de criar.
fg = FeatureGroupManager.create( # ...other parameters... offline_store_config=OfflineStoreConfig( s3_storage_config=S3StorageConfig(s3_uri="s3://my-bucket/features/"), table_format="Iceberg", # Must use Iceberg table format ), iceberg_properties=IcebergProperties( properties={ "write.target-file-size-bytes": "536870912", "history.expire.min-snapshots-to-keep": "3", } ), )
Atualizar as propriedades do Iceberg em um grupo de recursos existente
A update função aceita um iceberg_properties parâmetro do tipoIcebergProperties. Ele pega um grupo de recursos já criado, recupera o AWS Glue Data Catalog da loja offline e define as propriedades especificadas do Iceberg.
fg = FeatureGroupManager.get(feature_group_name="my-feature-group") fg.update( iceberg_properties=IcebergProperties( properties={ "write.target-file-size-bytes": "268435456", "write.delete.mode": "merge-on-read", } ), )
Veja as propriedades do Iceberg em um grupo de recursos
A FeatureGroupManager.get função aceita um include_iceberg_properties parâmetro. Quando definido comoTrue, ele recupera as propriedades do Iceberg que foram definidas manualmente e fazem parte da lista de permissões e as adiciona ao iceberg_properties campo no objeto retornado.
Isso retorna somente as propriedades do conjunto que fazem parte da lista permitida. Para obter todas as propriedades da AWS Glue tabela, use a AWS Glue API diretamente. Se uma propriedade permitida do Iceberg não aparecer, ela não foi definida explicitamente e usa seu valor padrão.
fg = FeatureGroupManager.get( feature_group_name="my-feature-group", include_iceberg_properties=True, ) print(fg.iceberg_properties.properties) # e.g. {"write.target-file-size-bytes": "536870912"}
Permissões obrigatórias
Certifique-se de que as políticas AmazonSageMakerFullAccessgerenciadas AmazonSageMakerFeatureStoreAccesse as políticas estejam vinculadas à função do IAM que você está usando. Gerencie sua política com base no seu padrão de acesso.
Propriedades permitidas do Iceberg
A tabela a seguir lista as propriedades da tabela Iceberg que foram validadas para uso com o Feature Store. Para obter mais informações sobre essas propriedades, consulte Configuração da tabela
| Propriedade | Valor padrão | Description |
|---|---|---|
write.metadata.delete-after-commit.enabled |
false |
Controla se os arquivos de metadados da versão rastreada mais antiga devem ser excluídos após cada confirmação da tabela. |
write.metadata.previous-versions-max |
100 |
O número máximo de arquivos de metadados da versão anterior a serem rastreados. |
history.expire.max-snapshot-age-ms |
432000000(5 dias) |
Idade máxima padrão dos instantâneos a serem mantidos na tabela e em todas as suas ramificações enquanto os instantâneos expiram. |
history.expire.min-snapshots-to-keep |
1 |
Número mínimo padrão de instantâneos a serem mantidos na tabela e em todas as suas ramificações enquanto os instantâneos expiram. |
history.expire.max-ref-age-ms |
Long.MAX_VALUE(para sempre) |
Para referências de instantâneos, exceto a main ramificação, a idade máxima padrão das referências de instantâneos a serem mantidas durante a expiração dos instantâneos. A main filial nunca expira. |
write.target-file-size-bytes |
536870912(512 MB) |
Controla o tamanho dos arquivos gerados para atingir esse número de bytes. |
write.delete.target-file-size-bytes |
67108864(64 MB) |
Controla o tamanho dos arquivos de exclusão gerados para atingir esse número de bytes. |
write.delete.mode |
copy-on-write |
Modo usado para excluir comandos: copy-on-write ou merge-on-read (v2 e superior). |
write.update.mode |
copy-on-write |
Modo usado para comandos de atualização: copy-on-write ou merge-on-read (v2 e superior). |
write.delete.granularity |
partition |
Controla a granularidade dos arquivos de exclusão gerados: partition ou. file |
write.parquet.row-group-size-bytes |
134217728(128 MB) |
Tamanho do grupo de fileiras de parquet. |
read.split.target-size |
134217728(128 MB) |
Tamanho do alvo ao combinar divisões de entrada de dados. |
read.split.metadata-target-size |
33554432(32 MB) |
Tamanho alvo ao combinar divisões de entrada de metadados. |
read.split.open-file-cost |
4194304(4 MB) |
O custo estimado para abrir um arquivo, usado como peso mínimo ao combinar divisões. |