Praca z tabelami cech w Unity Catalog
Na tej stronie opisano sposób tworzenia i pracy z tabelami funkcji w wykazie aparatu Unity.
Ta strona dotyczy tylko obszarów roboczych, które są włączone dla wykazu aparatu Unity. Jeśli obszar roboczy nie jest włączony dla Unity Catalogu, zobacz Pracuj z tabelami cech w Sklepie Funkcji obszaru roboczego (starsza wersja).
Aby uzyskać szczegółowe informacje o poleceniach i parametrach używanych w przykładach na tej stronie, zobacz dokumentację interfejsu API języka Python inżynierii funkcji.
Wymagania
Inżynieria funkcji w wykazie aparatu Unity wymaga środowiska Databricks Runtime 13.2 lub nowszego. Ponadto magazyn metadanych wykazu aparatu Unity musi mieć model uprawnień w wersji 1.0.
Instalowanie inżynierii funkcji w kliencie języka Python katalogu aparatu Unity
Inżynieria funkcji w katalogu aparatu Unity ma klienta FeatureEngineeringClient
języka Python. Klasa jest dostępna w interfejsie PyPI z pakietem databricks-feature-engineering
i jest wstępnie zainstalowana w środowisku Databricks Runtime 13.3 LTS ML i nowszym. Jeśli używasz środowiska uruchomieniowego usługi Databricks Innej niż ML, musisz zainstalować klienta ręcznie.
Użyj macierzy zgodności, aby znaleźć poprawną wersję środowiska Databricks Runtime.
%pip install databricks-feature-engineering
dbutils.library.restartPython()
Tworzenie wykazu i schematu dla tabel funkcji w wykazie aparatu Unity
Musisz utworzyć nowy wykaz lub użyć istniejącego wykazu dla tabel funkcji.
Aby utworzyć nowy wykaz, musisz mieć CREATE CATALOG
uprawnienia do magazynu metadanych.
CREATE CATALOG IF NOT EXISTS <catalog-name>
Aby użyć istniejącego wykazu, musisz mieć USE CATALOG
uprawnienia do wykazu.
USE CATALOG <catalog-name>
Tabele funkcji w wykazie aparatu Unity muszą być przechowywane w schemacie. Aby utworzyć nowy schemat w wykazie, musisz mieć CREATE SCHEMA
uprawnienia do wykazu.
CREATE SCHEMA IF NOT EXISTS <schema-name>
Tworzenie tabeli funkcji w wykazie aparatu Unity
Uwaga
Możesz użyć istniejącej tabeli delty w wykazie aparatu Unity, która zawiera ograniczenie klucza podstawowego jako tabelę funkcji. Jeśli tabela nie ma zdefiniowanego klucza podstawowego, należy zaktualizować tabelę przy użyciu ALTER TABLE
instrukcji DDL, aby dodać ograniczenie. Zobacz Używanie istniejącej tabeli delty w wykazie aparatu Unity jako tabeli funkcji.
Jednak dodanie klucza podstawowego do tabeli przesyłania strumieniowego lub zmaterializowanego widoku opublikowanego w wykazie aparatu Unity przez potok delta Live Tables wymaga zmodyfikowania schematu tabeli przesyłania strumieniowego lub zmaterializowanej definicji widoku w celu uwzględnienia klucza podstawowego, a następnie odświeżenia tabeli przesyłania strumieniowego lub zmaterializowanego widoku. Zobacz Używanie tabeli przesyłania strumieniowego lub zmaterializowanego widoku utworzonego przez potok delta Live Tables jako tabelę funkcji.
Tabele funkcji w wykazie aparatu Unity to tabele delty. Tabele funkcji muszą mieć klucz podstawowy. Tabele funkcji, takie jak inne zasoby danych w wykazie aparatu Unity, są dostępne przy użyciu przestrzeni nazw na poziomie trzech poziomów: <catalog-name>.<schema-name>.<table-name>
.
W celu utworzenia tabel funkcji w wykazie aparatu Unity można użyć języka SQL, języka Python FeatureEngineeringClient
lub potoku Tabele na żywo delty.
Język SQL usługi Databricks
Możesz użyć dowolnej tabeli delty z ograniczeniem klucza podstawowego jako tabeli funkcji. Poniższy kod pokazuje, jak utworzyć tabelę z kluczem podstawowym:
CREATE TABLE ml.recommender_system.customer_features (
customer_id int NOT NULL,
feat1 long,
feat2 varchar(100),
CONSTRAINT customer_features_pk PRIMARY KEY (customer_id)
);
Aby utworzyć tabelę funkcji szeregów czasowych, dodaj kolumnę czasu jako kolumnę klucza podstawowego i określ słowo kluczowe TIMESERIES. Słowo kluczowe TIMESERIES wymaga środowiska Databricks Runtime 13.3 LTS lub nowszego.
CREATE TABLE ml.recommender_system.customer_features (
customer_id int NOT NULL,
ts timestamp NOT NULL,
feat1 long,
feat2 varchar(100),
CONSTRAINT customer_features_pk PRIMARY KEY (customer_id, ts TIMESERIES)
);
Po utworzeniu tabeli można zapisywać do niej dane, takie jak inne tabele delty, i mogą być używane jako tabela funkcji.
Python
Aby uzyskać szczegółowe informacje na temat poleceń i parametrów używanych w poniższych przykładach, zobacz dokumentację interfejsu API języka Python inżynierii funkcji.
- Napisz funkcje języka Python, aby obliczyć funkcje. Dane wyjściowe każdej funkcji powinny być ramką danych platformy Apache Spark z unikatowym kluczem podstawowym. Klucz podstawowy może składać się z co najmniej jednej kolumny.
- Utwórz tabelę funkcji, tworząc wystąpienie obiektu
FeatureEngineeringClient
i przy użyciu poleceniacreate_table
. - Wypełnij tabelę funkcji przy użyciu polecenia
write_table
.
from databricks.feature_engineering import FeatureEngineeringClient
fe = FeatureEngineeringClient()
# Prepare feature DataFrame
def compute_customer_features(data):
''' Feature computation code returns a DataFrame with 'customer_id' as primary key'''
pass
customer_features_df = compute_customer_features(df)
# Create feature table with `customer_id` as the primary key.
# Take schema from DataFrame output by compute_customer_features
customer_feature_table = fe.create_table(
name='ml.recommender_system.customer_features',
primary_keys='customer_id',
schema=customer_features_df.schema,
description='Customer features'
)
# An alternative is to use `create_table` and specify the `df` argument.
# This code automatically saves the features to the underlying Delta table.
# customer_feature_table = fe.create_table(
# ...
# df=customer_features_df,
# ...
# )
# To use a composite primary key, pass all primary key columns in the create_table call
# customer_feature_table = fe.create_table(
# ...
# primary_keys=['customer_id', 'date'],
# ...
# )
# To create a time series table, set the timeseries_columns argument
# customer_feature_table = fe.create_table(
# ...
# primary_keys=['customer_id', 'date'],
# timeseries_columns='date',
# ...
# )
Tworzenie tabeli funkcji w wykazie aparatu Unity za pomocą potoku delta Live Tables
Uwaga
Obsługa funkcji Delta Live Tables dla ograniczeń tabel jest dostępna w publicznej wersji zapoznawczej. Poniższe przykłady kodu muszą być uruchamiane przy użyciu kanału wersji zapoznawczej funkcji Delta Live Tables.
Każda tabela opublikowana w potoku Delta Live Tables zawierająca ograniczenie klucza podstawowego może służyć jako tabela funkcji. Aby utworzyć tabelę w potoku Delta Live Tables z kluczem podstawowym, możesz użyć języka SQL usługi Databricks lub interfejsu programowania Języka Python tabel delta live tables.
Aby utworzyć tabelę w potoku delta live tables z kluczem podstawowym, użyj następującej składni:
Język SQL usługi Databricks
CREATE LIVE TABLE customer_features (
customer_id int NOT NULL,
feat1 long,
feat2 varchar(100),
CONSTRAINT customer_features_pk PRIMARY KEY (customer_id)
) AS SELECT * FROM ...;
Python
import dlt
@dlt.table(
schema="""
customer_id int NOT NULL,
feat1 long,
feat2 varchar(100),
CONSTRAINT customer_features_pk PRIMARY KEY (customer_id)
""")
def customer_features():
return ...
Aby utworzyć tabelę funkcji szeregów czasowych, dodaj kolumnę czasu jako kolumnę klucza podstawowego i określ słowo kluczowe TIMESERIES.
Język SQL usługi Databricks
CREATE LIVE TABLE customer_features (
customer_id int NOT NULL,
ts timestamp NOT NULL,
feat1 long,
feat2 varchar(100),
CONSTRAINT customer_features_pk PRIMARY KEY (customer_id, ts TIMESERIES)
) AS SELECT * FROM ...;
Python
import dlt
@dlt.table(
schema="""
customer_id int NOT NULL,
ts timestamp NOT NULL,
feat1 long,
feat2 varchar(100),
CONSTRAINT customer_features_pk PRIMARY KEY (customer_id, ts TIMESERIES)
""")
def customer_features():
return ...
Po utworzeniu tabeli można zapisywać do niej dane, takie jak inne zestawy danych tabel delta Live Tables i mogą być używane jako tabela funkcji.
Używanie istniejącej tabeli delty w wykazie aparatu Unity jako tabeli funkcji
Dowolna tabela delty w wykazie aparatu Unity z kluczem podstawowym może być tabelą funkcji w wykazie aparatu Unity i można użyć interfejsu użytkownika funkcji i interfejsu API z tabelą .
Uwaga
- Tylko właściciel tabeli może zadeklarować ograniczenia klucza podstawowego. Nazwa właściciela jest wyświetlana na stronie szczegółów tabeli w Eksploratorze wykazu.
- Sprawdź, czy typ danych w tabeli delta jest obsługiwany przez inżynierię funkcji w katalogu aparatu Unity. Zobacz Obsługiwane typy danych.
- Słowo kluczowe TIMESERIES wymaga środowiska Databricks Runtime 13.3 LTS lub nowszego.
Jeśli istniejąca tabela delty nie ma ograniczenia klucza podstawowego, możesz go utworzyć w następujący sposób:
Ustaw kolumny klucza podstawowego na
NOT NULL
. Dla każdej kolumny klucza podstawowego uruchom polecenie:ALTER TABLE <full_table_name> ALTER COLUMN <pk_col_name> SET NOT NULL
Zmień tabelę, aby dodać ograniczenie klucza podstawowego:
ALTER TABLE <full_table_name> ADD CONSTRAINT <pk_name> PRIMARY KEY(pk_col1, pk_col2, ...)
pk_name
to nazwa ograniczenia klucza podstawowego. Zgodnie z konwencją można użyć nazwy tabeli (bez schematu i katalogu) z sufiksem_pk
. Na przykład tabela o nazwie"ml.recommender_system.customer_features"
będzie miałacustomer_features_pk
nazwę ograniczenia klucza podstawowego.Aby utworzyć tabelę jako tabelę funkcji szeregów czasowych, określ słowo kluczowe TIMESERIES w jednej z kolumn klucza podstawowego w następujący sposób:
ALTER TABLE <full_table_name> ADD CONSTRAINT <pk_name> PRIMARY KEY(pk_col1 TIMESERIES, pk_col2, ...)
Po dodaniu ograniczenia klucza podstawowego w tabeli tabela zostanie wyświetlona w interfejsie użytkownika funkcji i można jej użyć jako tabeli funkcji.
Używanie tabeli przesyłania strumieniowego lub zmaterializowanego widoku utworzonego przez potok delta Live Tables jako tabeli funkcji
Dowolna tabela przesyłania strumieniowego lub zmaterializowany widok w wykazie aparatu Unity z kluczem podstawowym może być tabelą funkcji w wykazie aparatu Unity i można użyć interfejsu użytkownika funkcji i interfejsu API z tabelą.
Uwaga
- Obsługa funkcji Delta Live Tables dla ograniczeń tabel jest dostępna w publicznej wersji zapoznawczej. Poniższe przykłady kodu muszą być uruchamiane przy użyciu kanału wersji zapoznawczej funkcji Delta Live Tables.
- Tylko właściciel tabeli może zadeklarować ograniczenia klucza podstawowego. Nazwa właściciela jest wyświetlana na stronie szczegółów tabeli w Eksploratorze wykazu.
- Sprawdź, czy inżynieria funkcji w wykazie aparatu Unity obsługuje typ danych w tabeli delta. Zobacz Obsługiwane typy danych.
Aby ustawić klucze podstawowe dla istniejącej tabeli przesyłania strumieniowego lub zmaterializowanego widoku, zaktualizuj schemat tabeli przesyłania strumieniowego lub zmaterializowany widok w notesie, który zarządza obiektem. Następnie odśwież tabelę, aby zaktualizować obiekt wykazu aparatu Unity.
Poniżej przedstawiono składnię dodawania klucza podstawowego do zmaterializowanego widoku:
Język SQL usługi Databricks
CREATE OR REFRESH MATERIALIZED VIEW existing_live_table(
id int NOT NULL PRIMARY KEY,
...
) AS SELECT ...
Python
import dlt
@dlt.table(
schema="""
id int NOT NULL PRIMARY KEY,
...
"""
)
def existing_live_table():
return ...
Używanie istniejącego widoku w katalogu Unity jako tabeli cech
Aby użyć widoku jako tabeli funkcji, należy użyć databricks-feature-engineering
w wersji 0.7.0 lub nowszej, która jest wbudowana w środowisko Databricks Runtime 16.0 ML.
Prosty widok SELECT w katalogu Unity może być tabelą cech w katalogu Unity i można użyć API cech z tą tabelą.
Uwaga
- Prosty widok SELECT jest definiowany jako widok utworzony na podstawie pojedynczej tabeli Delta w katalogu Unity, który może być używany jako tabela cech, a którego klucze podstawowe są wybierane bez klauzul JOIN, GROUP BY ani DISTINCT. Dopuszczalne słowa kluczowe w instrukcji SQL to SELECT, FROM, WHERE, ORDER BY, LIMIT i OFFSET.
- Zobacz Obsługiwane typy danych dla obsługiwanych typów danych.
- Tabele funkcji wspierane przez widoki nie są wyświetlane w interfejsie użytkownika funkcji.
- Jeśli nazwy kolumn zostaną zmienione w źródłowej tabeli delty, kolumny w instrukcji SELECT definicji widoku muszą zostać zmienione tak, aby odpowiadały.
Oto przykład prostego widoku SELECT, którego można użyć jako tabeli funkcji:
CREATE OR REPLACE VIEW ml.recommender_system.content_recommendation_subset AS
SELECT
user_id,
content_id,
user_age,
user_gender,
content_genre,
content_release_year,
user_content_watch_duration,
user_content_like_dislike_ratio
FROM
ml.recommender_system.content_recommendations_features
WHERE
user_age BETWEEN 18 AND 35
AND content_genre IN ('Drama', 'Comedy', 'Action')
AND content_release_year >= 2010
AND user_content_watch_duration > 60;
Tabele funkcji oparte na widokach mogą służyć do trenowania i oceny modelu offline. Nie można ich publikować w sklepach internetowych. Nie można obsłużyć cech z tych tabel i modeli opartych na tych cechach.
Aktualizowanie tabeli funkcji w wykazie aparatu Unity
Tabelę funkcji można zaktualizować w katalogu aparatu Unity, dodając nowe funkcje lub modyfikując określone wiersze na podstawie klucza podstawowego.
Nie należy aktualizować następujących metadanych tabeli funkcji:
- Klucz podstawowy.
- Klucz partycji.
- Nazwa lub typ danych istniejącej funkcji.
Ich zmiana spowoduje przerwanie potoków podrzędnych, które używają funkcji do trenowania i obsługi modeli.
Dodawanie nowych funkcji do istniejącej tabeli funkcji w wykazie aparatu Unity
Nowe funkcje można dodać do istniejącej tabeli funkcji na jeden z dwóch sposobów:
- Zaktualizuj istniejącą funkcję obliczeniową funkcji i uruchom polecenie
write_table
za pomocą zwróconej ramki danych. Spowoduje to zaktualizowanie schematu tabeli funkcji i scalanie nowych wartości funkcji na podstawie klucza podstawowego. - Utwórz nową funkcję obliczeniową funkcji, aby obliczyć nowe wartości funkcji. Ramka danych zwrócona przez tę nową funkcję obliczeniową musi zawierać podstawowe i klucze partycji tabel funkcji (jeśli zdefiniowano). Uruchom polecenie
write_table
z ramą danych, aby zapisać nowe funkcje w istniejącej tabeli funkcji przy użyciu tego samego klucza podstawowego.
Aktualizowanie tylko określonych wierszy w tabeli funkcji
Użyj mode = "merge"
polecenia w pliku write_table
. Wiersze, których klucz podstawowy nie istnieje w ramce danych wysłanej write_table
w wywołaniu, pozostają niezmienione.
from databricks.feature_engineering import FeatureEngineeringClient
fe = FeatureEngineeringClient()
fe.write_table(
name='ml.recommender_system.customer_features',
df = customer_features_df,
mode = 'merge'
)
Planowanie zadania w celu zaktualizowania tabeli funkcji
Aby zapewnić, że funkcje w tabelach funkcji zawsze mają najnowsze wartości, usługa Databricks zaleca utworzenie zadania, które uruchamia notes w celu regularnego aktualizowania tabeli funkcji, na przykład codziennie. Jeśli masz już utworzone nieplanowane zadanie, możesz przekonwertować je na zaplanowane zadanie, aby upewnić się, że wartości funkcji są zawsze aktualne. Zobacz Planowanie i organizowanie przepływów pracy.
Kod aktualizowania tabeli funkcji używa metody mode='merge'
, jak pokazano w poniższym przykładzie.
from databricks.feature_engineering import FeatureEngineeringClient
fe = FeatureEngineeringClient()
customer_features_df = compute_customer_features(data)
fe.write_table(
df=customer_features_df,
name='ml.recommender_system.customer_features',
mode='merge'
)
Przechowywanie poprzednich wartości codziennych funkcji
Zdefiniuj tabelę funkcji przy użyciu złożonego klucza podstawowego. Uwzględnij datę w kluczu podstawowym. Na przykład w przypadku tabeli customer_features
funkcji można użyć złożonego klucza podstawowego (date
, customer_id
) i klucza date
partycji do wydajnego odczytu.
Usługa Databricks zaleca włączenie płynnego klastrowania w tabeli w celu uzyskania wydajnych operacji odczytu. Jeśli nie używasz klastrowania liquid, ustaw kolumnę daty jako klucz partycji, aby uzyskać lepszą wydajność odczytu.
Język SQL usługi Databricks
CREATE TABLE ml.recommender_system.customer_features (
customer_id int NOT NULL,
`date` date NOT NULL,
feat1 long,
feat2 varchar(100),
CONSTRAINT customer_features_pk PRIMARY KEY (`date`, customer_id)
)
-- If you are not using liquid clustering, uncomment the following line.
-- PARTITIONED BY (`date`)
COMMENT "Customer features";
Python
from databricks.feature_engineering import FeatureEngineeringClient
fe = FeatureEngineeringClient()
fe.create_table(
name='ml.recommender_system.customer_features',
primary_keys=['date', 'customer_id'],
# If you are not using liquid clustering, uncomment the following line.
# partition_columns=['date'],
schema=customer_features_df.schema,
description='Customer features'
)
Następnie możesz utworzyć kod do odczytu z filtrowania date
tabeli funkcji do okresu zainteresowania.
Możesz również utworzyć tabelę funkcji szeregów czasowych, która umożliwia wyszukiwanie do punktu w czasie w przypadku użycia create_training_set
funkcji lub score_batch
. Zobacz Tworzenie tabeli funkcji w wykazie aparatu Unity.
Aby zachować aktualność tabeli funkcji, skonfiguruj regularnie zaplanowane zadanie do pisania funkcji lub przesyłania strumieniowego nowych wartości funkcji do tabeli funkcji.
Tworzenie potoku obliczeń funkcji przesyłania strumieniowego w celu zaktualizowania funkcji
Aby utworzyć potok obliczeń funkcji przesyłania strumieniowego, przekaż przesyłanie strumieniowe DataFrame
jako argument do write_table
elementu . Ta metoda zwraca StreamingQuery
obiekt.
def compute_additional_customer_features(data):
''' Returns Streaming DataFrame
'''
pass
from databricks.feature_engineering import FeatureEngineeringClient
fe = FeatureEngineeringClient()
customer_transactions = spark.readStream.table("prod.events.customer_transactions")
stream_df = compute_additional_customer_features(customer_transactions)
fe.write_table(
df=stream_df,
name='ml.recommender_system.customer_features',
mode='merge'
)
Odczytywanie z tabeli funkcji w wykazie aparatu Unity
Użyj read_table
polecenia , aby odczytać wartości funkcji.
from databricks.feature_engineering import FeatureEngineeringClient
fe = FeatureEngineeringClient()
customer_features_df = fe.read_table(
name='ml.recommender_system.customer_features',
)
Wyszukiwanie i przeglądanie tabel funkcji w wykazie aparatu Unity
Użyj interfejsu użytkownika funkcji, aby wyszukać lub przeglądać tabele funkcji w wykazie aparatu Unity.
Kliknij pozycję Funkcje na pasku bocznym, aby wyświetlić interfejs użytkownika funkcji.
Wybierz katalog z selektorem wykazu, aby wyświetlić wszystkie dostępne tabele funkcji w tym wykazie. W polu wyszukiwania wprowadź wszystkie lub część nazwy tabeli funkcji, funkcji lub komentarza. Możesz również wprowadzić wszystkie lub część klucza lub wartości tagu. Tekst wyszukiwania jest niewrażliwy na wielkość liter.
Pobieranie metadanych tabel funkcji w wykazie aparatu Unity
Użyj get_table
polecenia , aby uzyskać metadane tabeli funkcji.
from databricks.feature_engineering import FeatureEngineeringClient
fe = FeatureEngineeringClient()
ft = fe.get_table(name="ml.recommender_system.user_feature_table")
print(ft.features)
Używanie tagów z tabelami funkcji i funkcjami w wykazie aparatu Unity
Możesz użyć tagów, które są prostymi parami klucz-wartość, aby kategoryzować tabele i funkcje funkcji i zarządzać nimi.
W przypadku tabel funkcji można tworzyć, edytować i usuwać tagi przy użyciu Eksploratora wykazu, instrukcji SQL w notesie lub edytorze zapytań SQL albo interfejsu API języka Python inżynierii funkcji.
W przypadku funkcji można tworzyć, edytować i usuwać tagi przy użyciu Eksploratora wykazu lub instrukcji SQL w notesie lub edytorze zapytań SQL.
Zobacz Stosowanie tagów do zabezpieczanych obiektów wykazu aparatu Unity oraz interfejsu API języka Python inżynierii funkcji i obszaru roboczego.
W poniższym przykładzie pokazano, jak używać interfejsu API języka Python inżynierii funkcji do tworzenia, aktualizowania i usuwania tagów tabeli funkcji.
from databricks.feature_engineering import FeatureEngineeringClient
fe = FeatureEngineeringClient()
# Create feature table with tags
customer_feature_table = fe.create_table(
# ...
tags={"tag_key_1": "tag_value_1", "tag_key_2": "tag_value_2", ...},
# ...
)
# Upsert a tag
fe.set_feature_table_tag(name="customer_feature_table", key="tag_key_1", value="new_key_value")
# Delete a tag
fe.delete_feature_table_tag(name="customer_feature_table", key="tag_key_2")
Usuwanie tabeli funkcji w wykazie aparatu Unity
Tabelę funkcji w wykazie aparatu Unity można usunąć bezpośrednio, usuwając tabelę delta w wykazie aparatu Unity przy użyciu Eksploratora wykazu lub korzystając z interfejsu API języka Python inżynierii funkcji.
Uwaga
- Usunięcie tabeli funkcji może prowadzić do nieoczekiwanych błędów u producentów nadrzędnych i odbiorców podrzędnych (modeli, punktów końcowych i zaplanowanych zadań). Musisz usunąć opublikowane sklepy online u dostawcy usług w chmurze.
- Usunięcie tabeli funkcji w wykazie aparatu Unity powoduje również usunięcie bazowej tabeli delty.
-
drop_table
program nie jest obsługiwany w środowisku Databricks Runtime 13.1 ML lub nowszym. Użyj polecenia SQL, aby usunąć tabelę.
Możesz użyć języka SQL usługi Databricks lub FeatureEngineeringClient.drop_table
usunąć tabelę funkcji w wykazie aparatu Unity:
Język SQL usługi Databricks
DROP TABLE ml.recommender_system.customer_features;
Python
from databricks.feature_engineering import FeatureEngineeringClient
fe = FeatureEngineeringClient()
fe.drop_table(
name='ml.recommender_system.customer_features'
)
Udostępnianie tabeli funkcji w wykazie aparatu Unity między obszarami roboczymi lub kontami
Tabela funkcji w wykazie aparatu Unity jest dostępna dla wszystkich obszarów roboczych przypisanych do magazynu metadanych wykazu aparatu Unity w tabeli.
Aby udostępnić tabelę funkcji obszarom roboczym, które nie są przypisane do tego samego magazynu metadanych wykazu aparatu Unity, użyj funkcji Udostępniania różnicowego.