MySQL HeatWave User Guide
This section describes how to generate vector embeddings using the
ML_EMBED_ROW
MySQL HeatWave GenAI routine.
Vector embeddings are a numerical representation of the text that
capture the semantics of the data and relationships to other data.
You can pass the text string in the routine manually or use data
from tables in your database. To embed multiple rows of text
stored in a table in a single run, you can even
run a batch query.
Using this method, you can create vector embedding tables that you
can use to perform similarity searches using the
DISTANCE()
function, without
setting up a vector store.
This method does not support embedding unstructured data. To learn how to create vector embeddings for unstructured data, see Section 7.7, “Set Up a Vector Store”.
This topic contains the following sections:
Review the MySQL HeatWave GenAI requirements and privileges.
To Run Batch Queries, add the text that you want to embed to a column in a new or existing table.
To generate a vector embedding using MySQL HeatWave GenAI, perform the following steps:
To define the text that you want to encode, set the
@text
variable:
mysql> SET @text="TextToEncode
";
Replace TextToEncode
with the
text that you want to encode. For example:
mysql> SET @text="MySQL HeatWave GenAI lets you communicate with unstructured data using natural-language queries.";
To generate a vector embedding for the specified text, pass
the text to the embedding model using the
ML_EMBED_ROW
routine:
mysql> SELECT sys.ML_EMBED_ROW(@text, JSON_OBJECT("model_id", "EmbeddingModel
")) into @text_embedding;
Replace EmbeddingModel
with ID of
the embedding model you want to use. To view the lists of
available embedding models, see
MySQL HeatWave In-Database Embedding Models and
OCI Generative AI Service Embedding Models.
For example:
mysql> SELECT sys.ML_EMBED_ROW(@text, JSON_OBJECT("model_id", "all_minilm_l12_v2")) into @text_embedding;
The routine returns a VECTOR
,
and this commad stores it in the
@text_embedding
variable.
Print the vector embedding stored in the
@text_embedding
variable:
mysql> SELECT @text_embedding;
The output, which is a binary representation of the specified text, looks similar to the following:
-----------------------------------------------------+ | 0xEB0FE93C21737D3C4ED2F0BC6DCC06BD0668DBBB15D1ABBBDF3E03BD09DC21BC229512BD06B602BD4824F6BCFFEF 70BDFFB53C3D98A2BB3C02E0D63DD3C79BBC8A5B45BD29B32F3C63040DBD17AE91BDECEEED3C3B8A003D05E03CBB42B2 203D9F41643D404E4BBDEA4B93BBACED3D3DA0C2C43C8D2B55BCFED9103E280EA93D8424503CEE8A143D7A9BD03C0553 AFBD203443BD9276E23C024D15BDE8A6C83D8FD2E9BC401DA33AD661AFBDCA06633CEBB1823D11335C3D14B292BDE380 28BB335F273B55BA053D3472BFBDF60A64BD4B91B3BC6039BE3D37A5763DA85A863D4D08363B3F1E6DBD732F74BDA3BA 0B3C0B436BBC4E4081BDBD4866BDB4F1AB3C9E0692BCAE0160BB6D782D3DD321B83DC521813DE090D7BD8A96EEBC334F FDBCD0F146BD17217D3DAD8A333C3B427A3DE93EDC3C673712BDE8B21FBC52011A3A3A058A3D0BC534BD8A19AB3B8C1B 493C731CB03BDC0894BD6E7180BD44AC2DBC5131B03C108D8B3D61E13FBCB2B69A3C10423B3DFDAC73BD33883A3DEB35 7E3D3C27363D34599BBD5D9A523D63441D3D95F8EFBC7D74CE3BD420AEBD5A7B313CB1A6BDBCEAFAA53C07A01EBD02FF 373D8912B73C4E16D5BD00EC99BD50A0ED3B121129BB44AB1D3D56CA8A3D2BF183BD500A653C37F5B1BB2EEA3DBD443F B13DE5FD6E3C0ACC27BDF4F724BD73EB193D32A2773D37FCA8BDA279D0BA13730EBC94238A3DBD72D13DC3072B3D0FF8 F33A8404B53DFFC7983D79FD213DB5A0E7BBDBE31A3D7C7A8DBDFDA55CBA99FEA73D28E9F1BC87C1AD3D7934563BD80E 4EBD51ED65BCE5199DBC122A08BD7B35A43B344EADBD07E41C3D028CA13D6385933CB2A623BDA866093DE4BE843D48F7 72B8A9DA973D152E733D55FF363D56AAC33C0F18703D1F39043D45AB0D3CA7992C3C9053F3BDFE1718BEB199F43C579F 8F3D7489B1BDCE51B6BDA864CDBC8BC8B13D681E83BD7EFB0ABD01A5E8BD7B5949BDFAEA713DAADBE7BC417FACBD5050 A33D8BBC263C560A3BBD96AC13BD4E5D19BC3691C13D5F78FEBC383990BDED5E65BD12AD23BD139B883CB678763B4A94 3F3B3CF6DB3CC0FF0B3DC45AA13C00D893BCCC560A3D2EC4EBBABF3F10BD8FE40F3C1FEE8EBD80829B3C10F186BDAA0A 1E3D7245EE3CDFB41BBDC0BD08BC209B813D337860BD7D5621BDBD5850BCDEB93B3DD6ED30BD1E526DBBF98F703DB288 4ABC35A25B3C9895213C6040EEBC8DA4473C6690083EE09C2EB77D972FBD60B7180A69C488BCAE6529BDF98CABBD175D CA3D85BA56BDE540C73CE677F43CB382C03D4C79A63D10E2163CF3EB3ABDCED222BCFF398BBC9E268BBD669E93BD68A7 383CF162293D4E138C3CB3E0C13DB96E243D7DD984BDD3C3ABBC818188BD7DA8593B679E623DADE31D3D01DED53C3927 7ABD2460B4BC4ABFDEBCA7224EBD5F9C233AB77405BC8B532DBDEE7F15BCFD05C43D1D5E953D1FD8B3BCF1EBED3C1BAC 3BBCC9FF2B3D097588BA2F14FB3B5BB6383DF85C71BD7A877A3D2542C3BD53824E3D576B9FBD5C247BBD9AD0C03DEB77 F7BCA5804B3DCFF8A7BCBAFF893D6EDBACBDBB20A83C24884BBDDF61C0BD527A92BD4822583D99687EBDFD682DBDE80E 65BD717093BC46A3993D6A4F143E15EE8FBC2A81A7BDF811EFBCFBCF883D3F739CBC2BC0863DFBBADDBCC72B823C9B9C E2BC631448BD203017BD853B94BD42BC723D4A1807BBB888753C99A10B3D5390613CAF9E623DC7F5A5BDF4A1653CA17E F6BBBFAC35BC17394BBB3DF39A3D7ACCD83D0DEACCBDEF29C3BC2814633DBD40870BC6CFDE3C759CE9BC754AD03CA084 9D3D64CE9B3C5569293CD36D57BDE9A267BA6CFA503D00BB36BDAE16833C01188DBDA0737B3DDB913C3C0FD08FBD8C9D F6BC0D2CE23CFE0771BCC4F6583D9E730EBD6E8CA4BCBECB8C3DE1F09B3B3D4034BBE53806BD92AE80BCF2F8D7BC2385 493C679C493DC2324CBD266765BC4FC494BC79364C3D8AB7303DE0E4B8BCBDEF903DCE3DD6BC220727BC589FC2BC22A9 4DBDAA82983BC78C8F3DCB6AC2BA31089DBCEB49FC3C2510EC3B3F05083D90DDDBBDA1E15ABD80362E3D9936A3BDF401 D03C6CDB893DF3684ABDFB2DB7BB76ED95BD03A3FE3C2371B5BDBD5F7EBB1AACF7BB156BE53C1E8A9BBC440E2CBDFF1B 99BD |
To encode multiple rows of text strings stored in a table
column, in parallel, use the
ML_EMBED_TABLE
routine. This
method is faster than running the
ML_EMBED_ROW
routine multiple times.
In versions older than MySQL 9.2.1, to alter an existing table
or create a new table, MySQL requires you to set the
sql-require-primary-key
system variable to 0
.
The ML_EMBED_TABLE
routine is available in
MySQL 9.0.1-u1.
To run the steps in this section, create a new database
demo_db
and table
input_table
:
mysql>CREATE DATABASE demo_db;
mysql>USE demo_db;
mysql>CREATE TABLE input_table (id INT AUTO_INCREMENT, Input TEXT, primary key (id));
mysql>INSERT INTO input_table (Input) VALUES('Describe what is MySQL in 50 words.');
mysql>INSERT INTO input_table (Input) VALUES('Describe Artificial Intelligence in 50 words.');
mysql>INSERT INTO input_table (Input) VALUES('Describe Machine Learning in 50 words.');
To run batch queries using ML_EMBED_TABLE
,
perform the following steps:
Call the ML_EMBED_TABLE
routine:
mysql> CALL sys.ML_EMBED_TABLE("InputDBName.InputTableName.InputColumn
", "OutputDBName.OutputTableName.OutputColumn
",
JSON_OBJECT("model_id", "EmbeddingModel
"));
Replace the following:
InputDBName
: the name of the
database that contains the table column where your input
queries are stored.
InputTableName
: the name of
the table that contains the column where your input
queries are stored.
InputColumn
: the name of the
column that contains input queries.
OutputDBName
: the name of the
database that contains the table where you want to store
the generated outputs. This can be the same as the input
database.
OutputTableName
: the name of
the table where you want to create a new column to store
the generated outputs. This can be the same as the input
table. If the specified table doesn't exist, a new table
is created.
OutputColumn
: the name for
the new column where you want to store the output
generated for the input queries.
EmbeddingModel
: ID of the
embedding model to use. To view the lists of available
embedding models, see
MySQL HeatWave In-Database Embedding Models and
OCI Generative AI Service Embedding Models.
For example:
mysql> CALL sys.ML_EMBED_TABLE("demo_db.input_table.Input", "demo_db.output_table.Output",
JSON_OBJECT("model_id", "all_minilm_l12_v2"));
View the contents of the output table:
mysql> SELECT * FROM output_table;
+----+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
| id | Output | details |
+----+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
| 1 | 0xFF50873DB76340BD6EE860BDDFDB8C3BF8110ABE7569F83B7D91B63D8F5C003D15F996BDAAB8883D702CB4BD322F443A09F70D3EC0D3DEBD8926B03BFF5E363B5F20F53CF07F3BBD1543D5BCDD6E89BDC1F199BD1993BC3A580F1DBDDCC0F93C59B292BD5B0E923C23E3B8BBE6D3D93BAC030BBDFBA616BD4AFDD2BBFEB9B63DE79B003EA72B133D0C940ABDEAF23BBC9A31B1BC824ECD3C0B3A12BDF0B300BD1C1FFCBB9027553CB85E1DBD5A167B3C8655583D639661BD61E3F03C93FF8ABC042845BD27E0B53B0BD57ABDF49919BDB7F0A5BD0352443D0879F23C459938BB712097BCCF8F7DBDB44F12BE6669D0BD839B703D0CB1873D7001153DEE53A23D159ACD39796AEC3C68408C3D7320723D29EF36BD45624ABD84E873BD648428BDA3FED8BBC7D5E33DB13586BC78B185BDA5482F3D8C32E53CCE7712BD85151BBBA49F0BBC468C9C3C8355B4BAB6399C3CF5BB93BDE51C15BD113D78BC14D0563DA56DDEBBBDD23AB9797D4E3CF32D31BDA180113C171087BD62AB2BBDBD2D073D8E1B9EBC428382BD67B22F3DCCE2033D2917BB3C85F680BB95F9433DB4F701BD374159BDDCC97C3D2459E83C44DD8DBD37AD71BDFFD1B0BD5FC958BCAB495C3DFD7017BC440DADBDCFBCCD3D4E96FCBC80997DBD6F43983D5ABE15BD7E29D03D864A34BDA458383D8F6D7E3C6C9F353CFCE913BDB7CD26BCA393643CAA75883D212959BDA801F33C9567DEBC5ACD803DDB4222BD03ED333DA519FA3CE25B07BD288758BDD4AC12BC76C3573B49A9F63CA32547BCACA0BF3C3FDAD83A0FC2E9BC69515DBC81F8773D7ACBC4BA28A3AA3CEE4DA8BDF46CB03C06CDFCBA243DC13CAE87223EFA07043DB55DB4BDCBD021BD04DD8CBC9DEA983D0A55FE3C4ECC7EBB028966BD73EC17BD43DC1DBD0AA3103D9F5285BD0FBC1CBDB53E523BAAC05BBD4C3B5ABDB5520EBD71EC743D8485A73C6D256DBB4002523DB4E69EBD4F3AF7BCC7D633BBA807ABBB82A2C63C0B299CBD1234963DC7AC38BDE3F6433D4BF1353D24F61B3C660544BD8034B7BDC578263DFBCB933D5A6FB2BB26C24D3D4719853D14ADBA3D3C6BB3BCE2A6EDBC03C5C7BDBA65EE3BC93A743DDD7E38BDD3C1A6BDE963193BEFA50B3EC627C1BDC847B13D8C4385B9ED8B9C3B887EC2BAF54748BD54409FBD4E769EBD6C0653BD667AFE3DF2FFADBDB192A23D2103813D98CC83BC3EFD25BCFFC5053C300B4BBD1858693D942C3F3DB885073D790138BD515EEE08569DCC3B04000F3D9204CDBDB736313D3086713C9F9A1C3D04C44FBB2738533D6940303C1C3CC13CEC7D4ABC3AFEB73DD56F993C2D613EB9E95FBDBD62431E3C00D0433C7F40CCBDACF4873B238C063E881AD7BCE31BAF3DFE502DBDE03B9F3CEE0C313B584BA43D5740B13C211BA0BD175BB73C7DC681BC69EFE13C661314BCA7EBC1BCA8BBCB3D8CBD58BDC9CAE7BC50828B3D754587BDDDFE203DAD9D9DBD821DF2BB2DD6F2BCAB3E7CBC173E77BB1185143CECBD493D5E57E1BC74C29BBBF2E2113CEDF6EF3C6AD5DEBCD6F6803C367B7C3DF55190BD1A685E3D11F425BDF468213CFD858BBCF11168BD58E68EBD2FB0B33CAB65A8BD01A262BDD562CD3D047D11BD0B6BA73D415C1F3DBEF309BB6DCF11BD0A66F3BC30AB97BC42FDE73C7544913AC4DAB9BCB8A254BD7D37D53D3C886FBD64C3C83D9EF9653D7326663D72562C3DD5AC16BC91BC3D3DF65B11BD40AEDBBC2C34A2BD9D803FBC60DB7A3DC74E563C0E2A7ABBB664043D3A2B88BDF431B1BDA128423C92CF53BD94C08C0A9249023D4AD9813C7F2FD53C8D91DC3CEA628E3DA6A162BD39FA083DE67A433DB29C733C636E0BBDEAAD173D421E88BCA9E924BDD6E2D93B07BA043DD971D33CD7F9D9BC4AC0FE3B00C5E73C9B9BA2BC39F6CD3D21714C37DBC9A3BC37A5E439B341ED3CD431813C11FA003DF6C0A23DC8A5AA3DCFAFECBC2171623BFE94873D2E4727BD4B4F03BD56F6DEBB423CD5BC8E1EA73C6D25D2BA0FF8DBBC6CBF923CC413373DAD8EB83DD943D33C25B4973C827A213CC33DBC3BF15CDBBC783D733C1792473DA8E8ABBDC109E3BD8DCDC53C5E4B393D7F4DEF3C39D296BDCD8FF93C1702D6BA3E6BFEBC8C06813DCC462DBD9573FEBC57E98F3D234B23BCEFA6FFBC | {"error": null} |
| 2 | 0xE4C75E3DA70A91BD0E3A96BB1E29D7BA6B3AD1BD0256763C8A248F3DE7A85B3D758165BD277FCD3DB6F854BDD7B556BC481E213D45FDB1BC89991FBCA3BF133DAC03253DD0E7BD3CF18A77BD4479B3BD7992383CFAF4343D8F18DEBB1B61383CF596C2BD8B1BCA3DEB06143D64753C3DC032283D30121FBD563C47BD149689BCE5DF073E363C9A3CB49996BD2048773CFADE18BDC06883BD464D603C522BF4BC0082F5BC6378BCBDFE603CBCF00FD03CC4C9B13CE5123ABCE66177BD49695ABB475B40BD68CE81BD126601BE78A298BD752A08BD34D3E43C0E2203BC5E2669BD4E38CBBC4D5812BD28184ABD6D9DA0BD29EB8938B209693D578AC03D3284203D45DAD13B82BA0C3D5B25C13C43E0B93C9D754CBDEDB969BC2FACAF3DC488FABCA48026BDFF50C33D739BEF3CB7003A3C7204613DB01B2DBC5B05F53C3462CEBCF5453FBDC35975BD8439C2BCDF1ED43D122D72BD2A506A3C1181ABBD3A699C3D2F9BB73DD9C72ABC2FE70A3D26AB29BD7571933DEA63F3BB702FB33C95309E3D06C796BC8BEDB9BD13771DBDBD38493D45D894BD2309FD3CC46B913C515C7EBD328495BC1FEFF7BBB8BB64BDB7B99BBD2C78D9BC808282BC08B09E3A55CFD83B68FCCF3CE80630BD6205823C412DE5BCDBD483BDD372163DF846A8BC0B2F493DB6B6E5BCE39D813D19BBE23B590FC23D564AA63CEF1C71BDF300B93C6550803D81FC0EBDA818B43C211F22BDE079503D11248DBD732783BD231AB73D1F754C3CE8EF41BDDFFF93BD23D857BD32E0A93C43E306BD7023C53DE4E3423D48ECDABC6DCC243D9376223DC601C7BCDD6B333CFBF0F33C2798D13C14EF853C0BDB37BD7F8ACB3DFD373FBC1C9E1C3DD54A323C73682C3C98CC8F3DD8E0553CFD8C783D1C26133D06E3993D8CCF963D3CF0CFBC29FB3D393A77D9BC394FDE3C7A11C3BCB9C0E4BD3FA74D3C7905843D8309773DEF17973D5B99123D85A5C8BB96A84BBC4BD4113CB2B0863D947F213CD4800DBCC41A9BBC4271F3BD8C3EE23C46DA4A3D13E4E33B852C53BDA4D2C7BC904A8BBC3420B1BB913F90BC57B57F3DE775CD3DDC5E943D7CBDD83C6AD58CBCC7B4E3BDC70E113D2BB9003ED41F89BCD92F8CBD7E699EBD121B2B3D5DA2B5BDC8013EBCDAAB43BC1B0844BCEA6BE0BB6B3789BD2AED28BDDDD743BBA4912ABDACFDA0BC2B1BC2BCD36E523D2ABE223DFE6646BD73BD94BD45F516BC281279BCEB6AEABA3DF5183D873EA13D628397BD68EA4E89780385BD5F80D63BDC84E9BDC1E45E3D2DBC663D91FB5A3DBA0CFBBC09F97B3DE61AD93C253D04BBD358A0BD565B3C3C069683BCCCAC123DAE83ADBD3E7582BBB31708BD3D789FBD7C92F63C748B0C3EA559803D94087B3DCEE91BBD71C58D3C7E827BBDF9A29E3DD13F50BBF36410BB20F8DD3C571AE6BC0AB12C3DDDE7903C05621FBDFDFBF63D0AA483BC1CEB123DAC6D953D80BEB0BD4224CFBC0211ABBD6163263D257709BB9F2E84BD567423BC4299173C3ABD49BB1F8458BC842D85BC57B0093C9EFFB83CA6BC38BB380D8DBA1A05053C2E2792BDC928A53D1B088DBD6F3CA7BB30CD6FBA3E64B23C1BCB5D3D7377F0BB297017BDCA0F143D3BFF9E3D651C55BD4637A13D6BBC2A3D7EB9633C0614FEBC5AD4D3BDE0FEEE3CEA7AA63D0371BD3CFB3C31BDAA8C3ABD1ACA323D4496CBBD7855253D1C51283DB305A23D82FBADBB4DB427BD0062053DEA0C92BD58B72FBDCE895D3CAA4385BDF1FDE6BCEECAD8BB34E1373DCFBFCC3C0BEEA6BDB6DB113C531F7E398D3A39BDF649140A33CD363CCE2DA83C055B953B2C73943D15035BBCE0F6803CD658CCBBF0A84EBD60041CBD80BE4EBDDCDB153D52F70CBC47E12CBCC32BE93DADF2123D3305D03CDC284CBD5429B13CF1CA8FBC2EABA5BCBA5AC73DB30D09BCE4E00ABEC68C9F3CE4EA0ABDD80079BD303DAFBADC6B223C8B81833C3D2155BC2867A2BB901B703D8A4A39BD2A46BE3C3F7FC5BB1244423DA806F8BC916A533D923D85BC1F21F9BCC5CDACBD501BA23D0734D6BCB51988BC3A658B3D15621E3C4C7A0ABD0C0C87BDDC611B3CB26482BD3CE049BDC8A4053D11E31DBD224E6E3DCD27BB3D9924973D5813933C5413BA3B6DFC01BD082EBA3DAC6BE2BC1640A33DCE2682BBEFECB2BD | {"error": null} |
| 3 | 0xA8CAE33C4B9EBFBD3AC704BD8F6DBDBC4B24B4BD9747723DF992273DC8ED8F3CC4B384BDB800A53DF07B0ABD181E0ABC70AB4D3D526A88BD0DB6DEBC69EB9B3D932A483D95833B3DC71DB8BC145BBEBD763B073D91A5283D06DB4DBCBAEDB63CE8E7AEBD8652283D0B8D973DE6C4463D2B24E1BB75238EBD14F3BFBC4095513C937BF63D6DAE303CC69E91BD8BD5DBBC61E52EBD805D17BD40CDACBCE0D46F3B530621BCE72CB1BD4EB705BDE2AA573C6B09673D79C486BC46F30A3BA889BABCA88464BD05A146BD83A8E2BDA148C0BD82D492BD49CFB53CF90080BB5A51BFBD19B074BDB7A62D3D6C19FBBC7CB5A0BC92AB5B3CF6CB633C7603603D1E262E3D40F0023D1BFE033C1A23F83C1F36243D7B4798BD5FCD5E3C73F6BD3B322B3CBB7D1400BD0619D33D627900BB00A0353DDBED4C3DD689FABABE8CDD3C05321EBDA486CEBC7160053D3E1B69BB1CA1893C605E9EBD91F02A3D8CCC66BDCAC0353D95AC523DAE7D00BC75CCA6BB14770DBD241D1B3AC3D1A93C0512C3BC7623A33DDB30F5BC4D8A8EBDEB7F093D4E7C913D08008FBDBC495A3D912A083C6D5ECBBCEE89B03CC5BC16BD572847BDCE5FA5BBFCB95EBD4B10D1BC6D87A63C5956F23BA53404BC1F9C18BD98C07C3DDBBD8EBCA71EFFBC0C6536BC3D4296BD8BC1BA3D7AFBDABD1434C93CC0298FBC9573633D6591803C8E7469BD4D2951BBD5D7363D05E7923B6E31E1BCC9B7283C32890D3DABDF2FBDCF471ABD6597E83D570D633C18BDEEBC51A038BD5B882ABD6304DD3C726729BDBBE5A93DA28AAD3DA623273C45731E3DD9E5963D8B5B3BBD167A56BB0BCFE1BBA13B173D8F68163D70F5FBBC49A6693DEC4B02BDF5259FBCDEB7B5BCB624393DBA10A63D10CF2C3C45FE8C3D7FCA7F3CB4CCB73D4746C23D120528BDE24CE8BC547344BD4526CB3CD1220BBDDD8435BD82CC19BD777CDD3D71D9C43C9392AABAF1278C3D84D74CBC2335773C184171BD91E445B90BCCA53C6CBE1EBDFCF552BD76D491BD62DB703C3F31C83DAC93023DEC3C55BD590E14BD43196DBB421EE0BC4D306BBD8EC5D73D72CB683D37882C3DB9441E3CD4F8E3BCB99408BE6821433DE7859D3D84ABF73C92359CBD5FC002BE3D808E3C9CFC5DBD2216ADBC7E47DABC0503053C31A822BC184C10BCA7FD39BD7B96EF3CB972A5BDA36C8F3C28F006BDA64DB43D027EE83B2B6B35BC61699EBD0C44E5BCB4EEA7BDC189CF3B7C61103DB8B8C43CDE3B8ABDC4332309B415E6BD2D8AEA3CD98A54BD55048D3D02292D3DAFF3273D397BFFBC4C8B723DF5FF1D3C7685903CB51051BD6F9CDE3CDC8E81BDD1912F3C2DA8DABDCA905BBB3D43123D8CE3C0BD0E63C53C9DD0E73DD122923D99E4543D5BA340BD592D7A3D4A6E01BD5BB9AE3D797E9EBC12DBEC3B6B4CDD3CD8AC8FBDAC168DBC44B09C3CD3C8B2BC3C52063E484F67BD2D5CF93CA9DFD43DBEDC4EBDA3E768BC4B8F8FBDC7DC373DC574253DEBF3B2BD88A80CBD2F72FCBC7A669BBB4EF52B3DFBAAEBBCDA0AE13C2471933DB319933B33A3103D3FAE9DBCE6DD9F3B8A23083D7A7B9BBD92659A3BF713663CB53E30BDEBA93B3DA5F997BDB5370BBD646C0ABD543B973D5F708FBD23CD413DEE25DA3D5273453D99F32DBD7FE88ABD5EB00FBD1EF4BB3D181A9B3C66C74BBCBF59E0BC4FC22B3C73DE83BDAF386ABC6DDF483C4996D13DB622B8BC61CF90BD9498A43DC2568ABD561FCFBCA01F483CF6B73ABCE7A81BBD524619BC8DF3EB3CDBBA9F3C3ADECABDA8E1623CB7EC0C3C80141EBDD9F20D084145C9BBF081703D423D563D1135943D7548C2BC4773E83B9748BABC7C4DD5BA87AE35BD3BEF71BD0DB18E3D2F95393C294D65BD12BC6C3DE3A23C3D192B633D5BFDCF3A8BE7A23C5176EABB19C910BD604CF33D7AA35B3C3CE2C7BD8C57E83C3738C03CE27C7BBD18B1483D894C933D6806AB3CFBB789BCB766BFBC3301CF3D681487BC4B2F0F3C4EED4DBC53E6463D8A1CFB3CD93C713D3AF508BDB3B9DB3CE2F536BD06C4AF3D92399C3AF0D8BABC21BC5F3D349C5A3DE5C3DFBC3C4F6EBD54A18CBBF711A5BDEF3C1FBD8BB8F73CABEA993DD5FBBC3B0FE3B03CF509F43DF9D719BC0FC878B9E6450E39737BCC3D91DE03BD29E9743D4BC33ABD0B08B5BD | {"error": null} |
+----+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
As of MySQL 9.3.0, the output table generated using the
ML_EMBED_TABLE
routine contains an
additional column called details
for
error reporting. In case the routine fails to generate
output for specific rows, details of the errors encountered
and default values used are added for the rows in this
additional column.
mysql> DESCRIBE output_table;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id | int | NO | PRI | 0 | |
| Output | vector(2048) | YES | | NULL | |
| details | json | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
As of MySQL 9.2.1, to specify the embedding model used to generate the vector embeddings, the routine adds the following comment for the VECTOR column in the output table:
'GENAI_OPTIONS=EMBED_MODEL_ID=EmbeddingModelID
'
For example:
mysql> SHOW CREATE TABLE output_table;
+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| output_table | CREATE TABLE `output_table` (
`id` int NOT NULL DEFAULT '0',
`Output` vector(2048) DEFAULT NULL COMMENT 'GENAI_OPTIONS=EMBED_MODEL_ID=minilm',
`details` json DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
This lets you use tables generated using this routine for context retrieval while running retrieval-augmented generation (RAG) as well as MySQL HeatWave Chat.
If you created a new database for testing the steps in this section, ensure that you delete the database to avoid being billed for it:
mysql> DROP DATABASE demo_db;
Learn how to Use Your Own Embeddings With Retrieval-Augmented Generation.
Learn how to Start a Conversational Chat.