Halaman ini menunjukkan cara membuat pemindaian profil data menggunakan Konsol Google Cloud, Google Cloud CLI, atau REST API.
Untuk mengetahui informasi selengkapnya tentang pemindaian profil data Dataplex, lihat Tentang pembuatan profil data.
Sebelum memulai
Di konsol Google Cloud, aktifkan Dataplex API.
Izin
Untuk membuat profil tabel BigQuery, Anda memerlukan izin berikut:
Untuk menjalankan pemindaian profil data pada tabel BigQuery, Anda memerlukan izin untuk membaca tabel BigQuery dan izin untuk membuat tugas BigQuery dalam project yang digunakan untuk memindai tabel.
Jika tabel BigQuery dan pemindaian profil data berada dalam project yang berbeda, Anda harus memberikan izin baca akun layanan Dataplex pada tabel BigQuery yang sesuai.
Jika data BigQuery diatur dalam data lake Dataplex, untuk membuat pemindaian profil data, Anda memerlukan peran Dataplex
roles/dataplex.metadataReader
danroles/dataplex.viewer
. Tindakan ini akan memberikan izin berikut:dataplex.lakes.list
dataplex.lakes.get
dataplex.zones.list
dataplex.zones.get
dataplex.entities.list
dataplex.entities.get
dataplex.operations.get
Jika Anda memindai tabel eksternal BigQuery dari Cloud Storage, tetapkan akun layanan Dataplex peran Cloud Storage Object Viewer (
roles/storage.objectViewer
) atau izin berikut untuk bucket:storage.buckets.get
storage.objects.get
Jika ingin memublikasikan hasil pemindaian profil data di halaman BigQuery dan Data Catalog di konsol Google Cloud untuk tabel sumber, Anda harus diberi peran IAM BigQuery Data Editor (
roles/bigquery.dataEditor
) atau izinbigquery.tables.update
di tabel.Untuk mengekspor hasil pemindaian ke tabel BigQuery, akun layanan Dataplex Anda memerlukan peran BigQuery Data Editor (
roles/bigquery.dataEditor
). Tindakan ini akan memberikan izin berikut:bigquery.datasets.get
bigquery.tables.create
bigquery.tables.get
bigquery.tables.getData
bigquery.tables.update
bigquery.tables.updateData
Jika Anda perlu mengakses kolom yang dilindungi oleh kebijakan akses tingkat kolom BigQuery, tetapkan izin akun layanan Dataplex untuk kolom tersebut. Pengguna yang membuat atau memperbarui pemindaian data juga memerlukan izin untuk kolom tersebut.
Jika kebijakan akses tingkat baris BigQuery diaktifkan untuk tabel, Anda hanya dapat memindai baris yang terlihat oleh akun layanan Dataplex. Perhatikan bahwa hak istimewa akses pengguna individual tidak dievaluasi untuk kebijakan tingkat baris.
Peran dan izin pemindaian data
Untuk menggunakan pembuatan profil data, administrator project dapat menetapkan peran standar dengan izin yang telah diberikan, atau memberikan izin satu per satu. Perannya adalah sebagai berikut:
roles/dataplex.dataScanAdmin
: Akses penuh ke resourceDataScan
.roles/dataplex.dataScanEditor
: Akses tulis ke resourceDataScan
.roles/dataplex.dataScanViewer
: Akses baca ke resourceDataScan
, tidak termasuk hasilnya.roles/dataplex.dataScanDataViewer
: Akses baca ke resourceDataScan
, termasuk hasilnya.
Tabel berikut mencantumkan izin pemindaian data:
Nama izin | Memberikan izin untuk melakukan hal berikut: |
---|---|
dataplex.datascans.create |
Membuat DataScan |
dataplex.datascans.delete |
Menghapus DataScan |
dataplex.datascans.get |
Melihat detail DataScan yang mengecualikan hasil |
dataplex.datascans.getData |
Melihat detail DataScan termasuk hasil |
dataplex.datascans.list |
Mencantumkan DataScan |
dataplex.datascans.run |
Menjalankan DataScan |
dataplex.datascans.update |
Memperbarui deskripsi DataScan |
dataplex.datascans.getIamPolicy |
Melihat izin IAM saat ini pada pemindaian |
dataplex.datascans.setIamPolicy |
Menetapkan izin IAM pada pemindaian |
Membuat pemindaian profil data
Konsol
Di konsol Google Cloud, buka halaman Profil.
Klik Buat pemindaian profil data.
Masukkan Nama tampilan.
Untuk mengubah ID pemindaian yang dibuat secara otomatis, berikan ID Anda sendiri. Lihat Konvensi penamaan resource.
Opsional: Masukkan Deskripsi..
Di kolom Table, klik Browse.
Pilih tabel, lalu klik Pilih.
Di kolom Cakupan, pilih Inkremental atau Seluruh data.
- Jika Anda memilih Data inkremental, di kolom Timestamp column, pilih kolom jenis
DATE
atauTIMESTAMP
dari tabel BigQuery yang meningkat secara monoton dan dapat digunakan untuk mengidentifikasi kumpulan data baru. Untuk tabel yang dipartisi pada kolom jenisDATE
atauTIMESTAMP
, sebaiknya gunakan kolom partisi sebagai kolom stempel waktu.
- Jika Anda memilih Data inkremental, di kolom Timestamp column, pilih kolom jenis
Untuk menerapkan sampling ke pemindaian profil data, pilih persentase sampling dalam daftar Ukuran sampling.
- Pilih nilai persentase yang berkisar antara 0,0% dan 100,0% dengan maksimal 3 digit desimal.
- Untuk set data yang lebih besar, pilih persentase pengambilan sampel yang lebih rendah. Misalnya, untuk tabel ~1 PB, jika Anda memasukkan nilai antara 0,1% dan 1,0%, Dataplex akan mengambil sampel data antara 1-10 TB.
- Anda memerlukan minimal 100 data dalam sampel data untuk menampilkan hasil.
- Untuk pemindaian data inkremental, Dataplex menerapkan sampling ke penambahan terbaru.
Untuk memfilter menurut baris, klik Filter, lalu pilih Filter baris.
Masukkan ekspresi SQL yang valid yang dapat digunakan dalam klausa
WHERE
dalam sintaksis SQL standar BigQuery. Misalnya:col1 >= 0
Filter dapat berupa kombinasi kondisi SQL di beberapa kolom. Misalnya:
col1 >= 0 AND col2 < 10
.
Opsional: Klik Filter. Centang kotak Filter kolom.
a. Di kolom Sertakan kolom, klik Jelajahi.
- Tentukan kolom yang akan disertakan dalam pemindaian profil. Pilih kolom yang Anda inginkan dengan mencentang kotak dan mengklik Pilih.
b. Di kolom Exclude columns, klik Browse.
- Tentukan kolom yang akan dikecualikan dari pemindaian profil. Pilih kolom yang Anda inginkan dengan mencentang kotak dan mengklik Pilih.
Opsional: Publikasikan hasil pemindaian profil data di halaman BigQuery dan Data Catalog di konsol Google Cloud untuk tabel sumber. Klik kotak centang Publikasikan hasil ke UI BigQuery dan Dataplex Catalog.
Anda dapat melihat hasil pemindaian terbaru di tab Profil Data di halaman BigQuery dan Katalog Data untuk tabel sumber. Agar pengguna dapat mengakses hasil pemindaian yang dipublikasikan, lihat Membagikan hasil yang dipublikasikan.
Opsi publikasi mungkin tidak tersedia dalam kasus berikut:
- Anda tidak memiliki izin yang diperlukan pada tabel.
- Pemindaian kualitas data lain ditetapkan untuk memublikasikan hasil.
Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan untuk melihat hasil yang dipublikasikan, lihat Izin.
Opsional: Ekspor hasil pemindaian ke tabel standar BigQuery. Klik Browse untuk memilih set data BigQuery yang ada untuk menyimpan hasil pemindaian profil data.
Jika tabel yang ditentukan tidak ada, Dataplex akan membuatnya untuk Anda. Jika Anda menggunakan tabel yang sudah ada, pastikan tabel tersebut kompatibel dengan skema tabel yang dijelaskan nanti di bagian ini.
Opsional: Tambahkan label. Label adalah pasangan
key:value
yang memungkinkan Anda mengelompokkan objek terkait secara bersama atau dengan resource Google Cloud lainnya.Di bagian Opsi jadwal, pilih salah satu opsi berikut:
Ulangi: Jalankan tugas pemindaian profil data sesuai jadwal: harian, mingguan, bulanan, atau kustom. Tentukan seberapa sering pemindaian harus berjalan dan pada jam berapa. Jika Anda memilih kustom, gunakan format cron untuk menentukan jadwal.
On-demand: Buat pemindaian profil data dan jalankan kapan saja menggunakan tindakan jalankan sekarang.
Klik Create.
gcloud
Untuk membuat pemindaian profil data, jalankan perintah berikut:
gcloud dataplex datascans create data-profile DATASCAN \ --location=LOCATION \ --data-source-entity=DATA_SOURCE_ENTITY | --data-source-resource=DATA_SOURCE_RESOURCE
Ganti variabel berikut:
DATASCAN
: Nama pemindaian profil data.LOCATION
: Region Google Cloud tempat membuat pemindaian profil data.DATA_SOURCE_ENTITY
: Entitas Dataplex yang berisi data untuk pemindaian profil data. Contoh,projects/test-project/locations/test-location/lakes/test-lake/zones/test-zone/entities/test-entity
.DATA_SOURCE_RESOURCE
: Nama resource yang berisi data untuk pemindaian profil data. Contoh,//bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table
.
Untuk argumen opsional, lihat referensi gcloud CLI.
REST
Gunakan API Explorer untuk membuat pemindaian profil data.
Membuat beberapa pemindaian profil data
Konsol
Di konsol Google Cloud, buka halaman Profil.
Klik Buat beberapa pemindaian profil.
Masukkan awalan ID. Dataplex otomatis membuat ID pemindaian menggunakan awalan dan akhiran unik yang disediakan.
Masukkan Deskripsi untuk semua pemindaian profil data.
Di kolom Dataset, klik Browse. Pilih set data tempat memilih tabel. Klik Select.
Jika set data bersifat multi-regional, pilih Region tempat pembuatan pemindaian profil data.
Pilih Opsi konfigurasi umum:
Di kolom Cakupan, pilih Inkremental atau Seluruh data.
Untuk menerapkan sampling ke pemindaian profil data, pilih persentase sampling dalam daftar Ukuran sampling.
Pilih nilai persentase antara 0,0% dan 100,0% dengan maksimal 3 digit desimal.
Untuk menampilkan hasil semua pemindaian, pilih Publikasi. Anda dapat melihat hasilnya di tab Profil pada detail tabel BigQuery atau Data Catalog. Pastikan Anda memiliki izin
bigquery.tables.update
di tabel sumber.Di bagian Opsi jadwal, pilih salah satu opsi berikut:
Ulangi: Jalankan tugas pemindaian profil data sesuai jadwal. Tentukan frekuensi pemindaian (harian, mingguan, bulanan, atau kustom) dan waktunya. Jika Anda memilih kustom, gunakan format cron untuk menentukan jadwal.
On-demand: Buat tugas pemindaian profil data dan jalankan kapan saja dengan mengklik Run.
Pada opsi Choose tables, klik Browse. Pilih satu atau beberapa tabel yang akan dipindai. Klik Select.
Pilih Setelan tambahan:
Untuk menyimpan hasil pemindaian profil data ke tabel BigQuery pilihan Anda, pilih tabel di Ekspor hasil pemindaian ke tabel BigQuery. Dataplex otomatis menyalin dan menyimpan hasilnya ke tabel ini untuk setiap tugas pemindaian.
Klik Browse untuk memilih set data.
Masukkan tabel BigQuery tempat menyimpan hasil. Tabel ini dapat berupa tabel yang ada, yang digunakan oleh pemindaian profil data Dataplex lainnya untuk menyimpan hasil. Jika tidak ada tabel tersebut dengan nama yang ditentukan, Dataplex akan membuat tabel.
Tambahkan Label untuk menganotasi pemindaian profil data Anda.
Klik Jalankan pemindaian untuk membuat dan menjalankan semua pemindaian. Opsi ini hanya tersedia untuk pemindaian on demand.
Klik Create untuk membuat semua pemindaian.
gcloud
Tidak didukung.
REST
Tidak didukung.
Mengekspor skema tabel
Jika Anda ingin mengekspor hasil pemindaian profil data ke tabel BigQuery yang ada, pastikan tabel tersebut kompatibel dengan skema tabel berikut:
Nama kolom | Jenis data kolom | Nama subkolom (jika ada) |
Jenis data subkolom | Mode | Contoh |
---|---|---|---|---|---|
data_profile_scan | struct/record |
resource_name |
string |
nullable | //dataplex.googleapis.com/projects/test-project/locations/europe-west2/datascans/test-datascan |
project_id |
string |
nullable | test-project |
||
location |
string |
nullable | us-central1 |
||
data_scan_id |
string |
nullable | test-datascan |
||
data_source | struct/record |
resource_name |
string |
nullable | Kasus entitas://dataplex.googleapis.com/projects/test-project/locations/europe-west2/lakes/test-lake/zones/test-zone/entities/test-entity
Kasus tabel: //bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table
|
dataplex_entity_project_id |
string |
nullable | test-project |
||
dataplex_entity_project_number |
integer |
nullable | 123456789012 |
||
dataplex_lake_id |
string |
nullable | (Hanya valid jika sumber adalah entitas)test-lake
|
||
dataplex_zone_id |
string |
nullable | (Hanya valid jika sumber adalah entitas)test-zone |
||
dataplex_entity_id |
string |
nullable | (Hanya valid jika sumber adalah entitas)test-entity |
||
table_project_id |
string |
nullable | dataplex-table |
||
table_project_number |
int64 |
nullable | 345678901234 |
||
dataset_id |
string |
nullable | (Hanya valid jika sumber adalah tabel)test-dataset |
||
table_id |
string |
nullable | (Hanya valid jika sumber adalah tabel)test-table |
||
data_profile_job_id | string |
nullable | caeba234-cfde-4fca-9e5b-fe02a9812e38 |
||
data_profile_job_configuration | json |
trigger |
string |
nullable | ondemand /schedule |
incremental |
boolean |
nullable | true /false |
||
sampling_percent |
float |
nullable | (0-100)20.0 (menunjukkan 20%) |
||
row_filter |
string |
nullable | col1 >= 0 AND col2 < 10 |
||
column_filter |
json |
nullable | {"include_fields":["col1","col2"], "exclude_fields":["col3"]} |
||
job_labels | json |
nullable | {"key1":value1} |
||
job_start_time | timestamp |
nullable | 2023-01-01 00:00:00 UTC |
||
job_end_time | timestamp |
nullable | 2023-01-01 00:00:00 UTC |
||
job_rows_scanned | integer |
nullable | 7500 |
||
column_name | string |
nullable | column-1 |
||
column_type | string |
nullable | string |
||
column_mode | string |
nullable | repeated |
||
percent_null | float |
nullable | (0,0-100,0)20.0 (menunjukkan 20%) |
||
percent_unique | float |
nullable | (0,0-100,0)92.5 |
||
min_string_length | integer |
nullable | (Hanya valid jika jenis kolom adalah string)10 |
||
max_string_length | integer |
nullable | (Hanya valid jika jenis kolom adalah string)4 |
||
average_string_length | float |
nullable | (Hanya valid jika jenis kolom adalah string)7.2 |
||
min_value | float |
nullable | (Hanya valid jika jenis kolom adalah numerik - bilangan bulat/float) | ||
max_value | float |
nullable | (Hanya valid jika jenis kolom adalah numerik - bilangan bulat/float) | ||
average_value | float |
nullable | (Hanya valid jika jenis kolom adalah numerik - bilangan bulat/float) | ||
standard_deviation | float |
nullable | (Hanya valid jika jenis kolom adalah numerik - bilangan bulat/float) | ||
quartile_lower | integer |
nullable | (Hanya valid jika jenis kolom adalah numerik - bilangan bulat/float) | ||
quartile_median | integer |
nullable | (Hanya valid jika jenis kolom adalah numerik - bilangan bulat/float) | ||
quartile_upper | integer |
nullable | (Hanya valid jika jenis kolom adalah numerik - bilangan bulat/float) | ||
top_n | struct/record - repeated |
value |
string |
nullable | "4009" |
count |
integer |
nullable | 20 |
||
percent |
float |
nullable | 10 (menunjukkan 10%) |
Penyiapan tabel ekspor
Saat Anda mengekspor ke tabel BigQueryExport, ikuti panduan berikut:
- Untuk kolom
resultsTable
, gunakan format://bigquery.googleapis.com/projects/{project-id}/datasets/{dataset-id}/tables/{table-id}
. - Gunakan tabel standar BigQuery.
- Jika tabel tidak ada saat pemindaian dibuat atau diperbarui, Dataplex akan membuat tabel untuk Anda.
- Secara default, tabel dipartisi pada kolom
job_start_time
setiap hari. - Jika Anda ingin tabel dipartisi dalam konfigurasi lain atau jika Anda tidak menginginkan partisi, buat ulang tabel dengan skema dan konfigurasi yang diperlukan, lalu berikan tabel yang telah dibuat sebelumnya sebagai tabel hasil.
- Pastikan tabel hasil berada di lokasi yang sama dengan tabel sumber.
- Jika VPC-SC dikonfigurasi pada project, tabel hasil harus berada dalam perimeter VPC-SC yang sama dengan tabel sumber.
- Jika tabel diubah selama tahap eksekusi pemindaian, tugas yang sedang berjalan saat ini akan diekspor ke tabel hasil sebelumnya dan perubahan tabel akan diterapkan dari tugas pemindaian berikutnya.
- Jangan ubah skema tabel. Jika Anda memerlukan kolom yang disesuaikan, buat tampilan di atas tabel.
- Untuk mengurangi biaya, tetapkan masa berlaku pada partisi berdasarkan kasus penggunaan Anda. Untuk informasi selengkapnya, lihat cara menetapkan masa berlaku partisi.
Menjalankan pemindaian profil data
Konsol
- Di konsol Google Cloud, buka halaman Profil Dataplex. Buka Profil
- Klik pemindaian profil data yang akan dijalankan.
- Klik Jalankan sekarang.
gcloud
Untuk menjalankan pemindaian profil data, jalankan perintah berikut:
gcloud dataplex datascans run DATASCAN \ --location=LOCATION
Ganti variabel berikut:
DATASCAN
: Nama pemindaian profil data.LOCATION
: Region Google Cloud tempat pemindaian profil data dibuat.
Untuk argumen opsional, lihat referensi gcloud CLI.
REST
Gunakan API Explorer untuk menjalankan pemindaian profil data.
Melihat hasil tugas pemindaian profil data
Konsol
Semua pemindaian profil data yang Anda buat akan muncul di halaman Profil.
Untuk melihat hasil pemindaian yang mendetail, klik nama pemindaian.
Bagian Ringkasan menampilkan pemindaian yang berjalan, waktu setiap pemindaian, jumlah data tabel yang dipindai, dan status tugas.
Bagian Konfigurasi pemindaian profil berisi detail tentang pemindaian.
gcloud
Untuk melihat hasil tugas pemindaian profil data, jalankan perintah berikut:
gcloud dataplex datascans jobs describe JOB \ --location=LOCATION \ --datascan=DATASCAN \ --view=FULL
Ganti variabel berikut:
JOB
: ID tugas tugas pemindaian profil data.LOCATION
: Region Google Cloud tempat pemindaian profil data dibuat.DATASCAN
: Nama profil data yang memindai tugas.--view=FULL
: Untuk melihat hasil tugas pemindaian, tentukanFULL
.
Untuk argumen opsional, lihat referensi gcloud CLI.
REST
Gunakan API Explorer untuk melihat hasil pemindaian profil data.
Melihat tugas pemindaian profil data terbaru
Konsol
Tab Hasil tugas terbaru, jika ada minimal satu tugas yang berhasil selesai, akan memberikan informasi tentang tugas terbaru. Bagian ini mencantumkan kolom tabel yang dipindai dan statistik tentang kolom yang ditemukan dalam pemindaian.
gcloud
Untuk melihat pemindaian profil data terbaru yang berhasil, jalankan perintah berikut:
gcloud dataplex datascans describe DATASCAN \ --location=LOCATION \ --view=FULL
Ganti variabel berikut:
DATASCAN
: Nama pemindaian profil data untuk melihat tugas terbaru.LOCATION
: Region Google Cloud tempat pemindaian profil data dibuat.--view=FULL
: Untuk melihat hasil tugas pemindaian, tentukanFULL
.
Untuk argumen opsional, lihat referensi gcloud CLI.
REST
Gunakan API Explorer untuk melihat tugas pemindaian terbaru.
Melihat semua tugas pemindaian profil data
Dataplex menyimpan histori pemindaian profil data dari 300 tugas terakhir atau selama setahun terakhir, mana saja yang lebih dahulu.
Konsol
Tab Histori tugas memberikan informasi tentang tugas sebelumnya. Laporan ini mencantumkan semua tugas, jumlah data yang dipindai di setiap tugas, status tugas, waktu eksekusi tugas, dan lainnya.
Untuk melihat informasi mendetail tentang tugas, klik salah satu tugas di bagian ID Tugas.
gcloud
Untuk melihat semua tugas pemindaian profil data, jalankan perintah berikut:
gcloud dataplex datascans jobs list \ --location=LOCATION \ --datascan=DATASCAN
Ganti variabel berikut:
LOCATION
: Region Google Cloud tempat pemindaian profil data dibuat.DATASCAN
: Nama pemindaian profil data untuk melihat semua tugas.
Untuk argumen opsional, lihat referensi gcloud CLI.
REST
Gunakan API Explorer untuk melihat semua tugas pemindaian.
Membagikan hasil yang dipublikasikan
Saat membuat pemindaian profil data, jika Anda memilih untuk memublikasikan hasil pemindaian di halaman BigQuery dan Data Catalog di konsol Google Cloud, hasil pemindaian terbaru akan tersedia di tab Profil data di halaman tersebut.
Anda dapat mengizinkan pengguna di organisasi untuk mengakses hasil pemindaian yang dipublikasikan. Untuk memberikan akses ke hasil pemindaian, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Profil.
Klik pemindaian profil data yang ingin Anda bagikan hasilnya.
Buka tab Izin.
Klik Grant access.
Di kolom New principals, tambahkan akun utama yang ingin Anda beri akses.
Di kolom Select a role, pilih Dataplex DataScan DataViewer.
Klik Simpan.
Untuk menghapus akses ke hasil pemindaian yang dipublikasikan untuk akun utama, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Profil.
Klik pemindaian profil data yang ingin Anda bagikan hasilnya.
Buka tab Izin.
Pilih akun utama yang ingin Anda hapus peran Dataplex DataScan DataViewer-nya.
Klik Hapus akses.
Klik Konfirmasi.
Memperbarui pemindaian profil data
Konsol
Di konsol Google Cloud, buka halaman Profil.
Di baris dengan pemindaian yang ingin diedit, klik > Edit.
Edit the values.
Klik Simpan.
gcloud
Untuk memperbarui pemindaian profil data, jalankan perintah berikut:
gcloud dataplex datascans update data-profile DATASCAN \ --location=LOCATION \ --description=DESCRIPTION
Ganti variabel berikut:
DATASCAN
: Nama pemindaian profil data yang akan diperbarui.LOCATION
: Region Google Cloud tempat pemindaian profil data dibuat.DESCRIPTION
: Deskripsi baru untuk pemindaian profil data.
Untuk mengetahui kolom spesifikasi yang akan diperbarui, lihat referensi gcloud CLI.
REST
Gunakan API Explorer untuk mengedit pemindaian profil data.
Menghapus pemindaian profil data
Konsol
Di konsol Google Cloud, buka halaman Profil. Buka Profil Dataplex
Klik pemindaian yang ingin dihapus.
Klik Hapus.
gcloud
Untuk menghapus pemindaian profil data, jalankan perintah berikut:
gcloud dataplex datascans delete \ DATASCAN --location=LOCATION \ --async
Ganti variabel berikut:
DATASCAN
: Nama pemindaian profil data yang akan dihapus.LOCATION
: Region Google Cloud tempat pemindaian profil data dibuat.
Untuk argumen opsional, lihat referensi gcloud CLI.
REST
Gunakan API Explorer untuk menghapus pemindaian profil data Anda.
Apa langkah selanjutnya?
- Pelajari pembuatan profil data.
- Pelajari kualitas data otomatis.
- Pelajari cara menggunakan kualitas data otomatis.