Os schemas permitem classificar tabelas, resources e funções dentro de um projeto do MaxCompute em namespaces mais refinados. Isso proporciona um controle mais granular sobre a organização e o acesso aos dados em um único projeto.
Como funcionam os schemas
No MaxCompute, o schema fica entre o projeto e seus objetos. A hierarquia de objetos é: projeto → schema → tabelas/resources/funções.
Após ativar o recurso de schema, todos os objetos acessíveis a um objeto de entrada do MaxCompute são colocados no schema chamado DEFAULT. Para trabalhar com objetos em um schema diferente, especifique o schema de destino ao inicializar o objeto de entrada ou ao chamar um método de operação.
Pré-requisitos
Antes de começar, verifique se você:
Ativou o recurso de schema para seu projeto do MaxCompute. Para obter detalhes, consulte Operações relacionadas a schema.
-
Configurou um ambiente de execução. O PyODPS é executado em um nó PyODPS no DataWorks ou em uma máquina local:
DataWorks: Crie um nó PyODPS 2 ou PyODPS 3. Para obter detalhes, consulte Usar PyODPS no DataWorks.
Máquina local: Instale o PyODPS e inicialize o objeto de entrada do MaxCompute.
Criar um schema
schema = o.create_schema("schema_name")
print(schema)
Excluir um schema
schema = o.delete_schema("schema_name")
Listar schemas
Para listar todos os schemas no projeto atual:
for schema in o.list_schemas():
print(schema)
Trabalhar com objetos em um schema específico
Inicializar o objeto de entrada para um schema
Para operar em objetos de um schema diferente de DEFAULT, passe o parâmetro schema ao inicializar o objeto de entrada ODPS.
import os
from odps import ODPS
# Store your credentials in environment variables — do not hardcode AccessKey ID or AccessKey Secret.
o = ODPS(
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
project='<your-default-project>',
endpoint='<your-end-point>',
schema='<your-schema-name>',
)
Substitua os seguintes espaços reservados pelos seus valores reais:
|
Espaço reservado |
Descrição |
|
|
Nome do seu projeto do MaxCompute. |
|
|
Endpoint do seu projeto do MaxCompute, definido conforme a região e o método de conexão de rede selecionados. Para obter detalhes, consulte Endpoints. Um endpoint inválido causa erro ao acessar o MaxCompute. |
|
|
Nome do schema. |
Especificar um schema para operações individuais
Passe schema diretamente aos métodos de operação para direcionar um schema específico sem precisar revincular o objeto de entrada.
# List all tables in test_schema.
for table in o.list_tables(schema='schema_name'):
print(table)
Definir um schema padrão para instruções SQL
Passe default_schema para execute_sql a fim de definir o contexto de schema para uma única instrução SQL.
o.execute_sql("SELECT * FROM dual", default_schema="schema_name")